2 using System.Collections.Generic;
16 using System.Windows.Forms;
22 namespace sage.ew.ewbase
32 private string _cDescripcion;
33 private string _cReportBase;
34 private bool _bCrearRegistroDefecto =
true;
50 public string _Descripcion
61 public string _ReportBase
72 public bool _CrearRegistroDefecto
76 return _bCrearRegistroDefecto;
80 _bCrearRegistroDefecto = value;
90 public TipoReport(
int tnCodigo,
string tcDescripcion,
string tcReportBase)
93 _cDescripcion = tcDescripcion;
94 _cReportBase = tcReportBase;
105 private List<ITipoReport> _oListadoTiposReport = null;
110 public List<ITipoReport> _ListadoTiposReport
114 if (_oListadoTiposReport == null)
116 _oListadoTiposReport =
new List<ITipoReport>();
118 foreach (
int lnVal
in Enum.GetValues(typeof(
TiposReport)))
122 TipoReport loTipoReport =
new TipoReport(lnVal, loTipo.__GetDescription(), loTipo.ToString().ToUpper().Trim())
124 _CrearRegistroDefecto = loTipo !=
TiposReport.SinDefinir
127 _oListadoTiposReport.Add(loTipoReport);
131 return _oListadoTiposReport;
144 bool lDocCamposAdi =
true;
145 DataTable loDataTable;
149 dynamic loDocument = null;
150 var admiteFiltros =
true;
152 var directorioTipoEtiqueta =
"";
153 var campoReportNonVisibleFields =
true;
168 loDocument._Cabecera._Tipo_Doc = Convert.ToInt32(
eTipoDocumento.Ticket);
174 lDocCamposAdi =
false;
203 lDocCamposAdi =
false;
210 directorioTipoEtiqueta =
"envioeti";
211 lDocCamposAdi =
false;
212 admiteFiltros =
false;
214 campoReportNonVisibleFields =
false;
222 lDocCamposAdi =
false;
223 admiteFiltros =
false;
224 campoReportNonVisibleFields =
false;
229 if (loDocument != null)
232 Dictionary<string, object> ldicParametrosReport =
new Dictionary<string, object>();
234 loDataTable = loDocument._Obtener_Datos_SageReports(ldicParametrosReport);
237 Dictionary<string, object> ldicFiltrosReport = null;
239 ldicFiltrosReport = loDocument._Obtener_Filtros_SageReports(ldicParametrosReport);
241 loReport =
new ReportTPV(loDocument._ReportBase, $
"{tcFichero}.report", loDataTable, null, ldicFiltrosReport, tipoReport)
243 _TipoDocumento = loTipo
249 _ConnectionString = DB.Conexion,
250 _Comunes = DB.DbComunes,
251 _TablaCamposAdicionales = DB.SQLDatabase(
"GESTION",
"MCAMPOS")
262 if (campoReportNonVisibleFields)
272 loDataTrasp.
_GlobalVar = EW_GLOBAL._GetAllVariable();
286 if(_oReportPath == null) _oReportPath =
new ReportPath();
345 private dynamic _oLink;
346 private bool _bIsNew =
false;
348 private string _cIdioma, _cEmpresa;
351 private static string _cGrupoEmpresa;
353 private static string _cPathServer = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_iniservidor"));
364 return _oConfigReportTemplates;
368 _oConfigReportTemplates = value;
383 loReport = _ConfigReportTemplates._GetReportTPV(_TipoReport._Codigo, _Fichero, _Documento);
385 if (loReport == null)
388 loDataTrasp.
_GlobalVar = EW_GLOBAL._GetAllVariable();
391 loReport.
_Path = _ReportPath;
407 public List<ITipoReport> _ListadoTiposReport
411 return _ConfigReportTemplates._ListadoTiposReport;
423 if (_oTemplateBase == null) _oTemplateBase = _ObtenerBase();
425 return _oTemplateBase;
429 _oTemplateBase = value;
433 private String _GrupoEmpresa
437 return _cGrupoEmpresa;
444 public TipoBase _TipoBase {
get;
set; } = TipoBase.Idioma;
464 public new bool _IsNew
479 public override string _Codigo
487 base._Codigo = value;
489 if (!
string.IsNullOrWhiteSpace(value)) _Id = Convert.ToInt32(value);
500 return (_lisCampos.ContainsKey(
"ID") || Convert.ToInt32(_lisCampos[
"ID"]._NewVal) > 0) ? Convert.ToInt32(_lisCampos[
"ID"]._NewVal) : 0;
504 if (_lisCampos.ContainsKey(
"ID")) _lisCampos[
"ID"]._NewVal = value;
511 public bool _TodasEmp
515 return _lisCampos.ContainsKey(
"TODASEMP") ? Convert.ToBoolean(_lisCampos[
"TODASEMP"]._NewVal) :
false;
519 if (_lisCampos.ContainsKey(
"TODASEMP")) _lisCampos[
"TODASEMP"]._NewVal = value;
530 return (_lisCampos.ContainsKey(
"ID_PARENT") || Convert.ToInt32(_lisCampos[
"ID_PARENT"]._NewVal) > 0) ? Convert.ToInt32(_lisCampos[
"ID_PARENT"]._NewVal) : 0;
534 if (_lisCampos.ContainsKey(
"ID_PARENT")) _lisCampos[
"ID_PARENT"]._NewVal = value;
541 public override string _Nombre
545 return (_lisCampos.ContainsKey(
"NOMBRE")) ? Convert.ToString(_lisCampos[
"NOMBRE"]._NewVal) : String.Empty;
549 if (_lisCampos.ContainsKey(
"NOMBRE")) _lisCampos[
"NOMBRE"]._NewVal = value;
556 public string _FicheroExt
560 return $
"{_Fichero}.report";
567 public string _Fichero
571 return (_lisCampos.ContainsKey(
"FICHERO") && !
string.IsNullOrWhiteSpace(Convert.ToString(_lisCampos[
"FICHERO"]._NewVal))) ? Convert.ToString(_lisCampos[
"FICHERO"]._NewVal).Trim() : _GetNameFichero(_Empresa, _Idioma);
575 if (_lisCampos.ContainsKey(
"FICHERO")) _lisCampos[
"FICHERO"]._NewVal = value;
582 public string _Observaciones
586 return (_lisCampos.ContainsKey(
"OBSERVA") && !
string.IsNullOrWhiteSpace(Convert.ToString(_lisCampos[
"OBSERVA"]._NewVal))) ? Convert.ToString(_lisCampos[
"OBSERVA"]._NewVal).Trim() : String.Empty;
590 if (_lisCampos.ContainsKey(
"OBSERVA")) _lisCampos[
"OBSERVA"]._NewVal = value;
601 return (_lisCampos.ContainsKey(
"PREDET")) ? Convert.ToBoolean(_lisCampos[
"PREDET"]._NewVal) :
false;
605 if (_lisCampos.ContainsKey(
"PREDET")) _lisCampos[
"PREDET"]._NewVal = value;
612 public string _Idioma
616 return _lisCampos.ContainsKey(
"IDI_PLAN") ? Convert.ToString(_lisCampos[
"IDI_PLAN"]._NewVal).Trim() :
string.Empty;
620 if (_lisCampos.ContainsKey(
"IDI_PLAN")) _lisCampos[
"IDI_PLAN"]._NewVal = value;
628 public string _Empresa
632 return _lisCampos.ContainsKey(
"EMPRESA") && !
string.IsNullOrWhiteSpace(Convert.ToString(_lisCampos[
"EMPRESA"]._NewVal)) ? Convert.ToString(_lisCampos[
"EMPRESA"]._NewVal) : Convert.ToString(EW_GLOBAL._GetVariable(
"wc_empresa"));
636 if (_lisCampos.ContainsKey(
"EMPRESA")) _lisCampos[
"EMPRESA"]._NewVal = value;
648 if (_lisCampos.ContainsKey(
"TIPO") && _ValidaTipoReport(Convert.ToInt32(_lisCampos[
"TIPO"]._NewVal)))
650 _oTipoReport = _GetTipoReport(Convert.ToInt32(_lisCampos[
"TIPO"]._NewVal));
656 if (_ValidaTipoReport(value._Codigo))
658 _oTipoReport = value;
659 if (_lisCampos.ContainsKey(
"TIPO")) _lisCampos[
"TIPO"]._NewVal = _oTipoReport.
_Codigo;
666 return _ConfigReportTemplates._ListadoTiposReport.Where(f => f._Codigo == tnCodigo).First();
669 private bool _ValidaTipoReport(
int tnCodigo)
671 return _ConfigReportTemplates._ListadoTiposReport.Where(f => f._Codigo == tnCodigo).Count() > 0;
677 public bool _IsCustomFileCreated
681 return File.Exists(Path.Combine(_cPathServer, _ReportPath._IniPamReportStoredPath, _FicheroExt));
688 public bool _IsFileBase
692 return IsFileBase(_Fichero);
702 tcFileName = tcFileName.ToUpper().Trim();
704 return _ConfigReportTemplates._ListadoTiposReport.Any(f => f._ReportBase.ToUpper().Trim() == tcFileName);
710 public bool _IsFileBaseParent
714 return _TemplateBase._Fichero == _Fichero;
724 return _FileCanBeRemoved() ? _RemoveFile(_ReportPath._IniPamReportStoredPath, _Fichero) :
false;
732 return _RemoveFile(_ReportPath._IniPamReportStoredPath, tcFileName);
738 public static bool _RemoveFile(
string tcInitPathServer,
string tcFileName)
742 lcPathFile = Path.Combine(_cPathServer, tcInitPathServer, $
"{tcFileName.Trim()}.report");
746 if (File.Exists(lcPathFile)) File.Delete(lcPathFile);
766 if (ValidarCampoNombre)
768 if (
string.IsNullOrWhiteSpace(_Nombre))
770 _Error_Message =
"Es obligatorio cumplimentar el campo Nombre.";
772 if (_FormMante != null)
773 this._FormMante._SetError_OnControl(
"_Nombre", _Error_Message);
786 public new bool _ReadOnly
790 return string.IsNullOrEmpty(_Codigo) ? false : _Parent == 0;
801 _oTemplateBase = null;
804 _Browser_Condicion = $
"EMPRESA = '{_Empresa}' AND IDI_PLAN = '{_Idioma}' ";
815 if (!_Save_Before())
return false;
817 lcSql = $
"UPDATE {DB.SQLDatabase(_DataBase, _Tabla)} SET NOMBRE = {DB.SQLString(_Nombre)}, OBSERVA = {DB.SQLString(_Observaciones)}, " +
818 $
" FICHERO = {DB.SQLString(_Fichero)}, TODASEMP = {Convert.ToInt16(_TodasEmp)} " +
819 $
"WHERE ID = {_Codigo} ";
822 if (DB.SQLExec(lcSql))
836 private bool _SaveFileName()
838 string lcSql = $
"UPDATE { DB.SQLDatabase(_DataBase, _Tabla)} SET FICHERO = { DB.SQLString(_Fichero)} WHERE ID = {_Codigo} ";
840 return DB.SQLExec(lcSql);
848 DataTable loDt =
new DataTable();
850 String lcSql, lcNameFicheroOri, lcIdioma, lcEmpresa;
852 lnCodigo = _ObtenerCodigoMax();
855 if (_TipoBase ==
TipoBase.Idioma && _TemplateBase != null && _TemplateBase._Parent > 0)
857 lcSql = String.Format(
"SELECT i.EMPRESA, i.CODIGO, fic.FICHERO FROM {0} i LEFT JOIN (SELECT r.ID, r.EMPRESA COLLATE Modern_Spanish_CS_AI as EMPRESA , r.IDI_PLAN COLLATE Modern_Spanish_CS_AI as IDI_PLAN, r.ID_PARENT FROM {1} r WHERE r.ID_PARENT = {3}) as f ON i.CODIGO = f.IDI_PLAN AND i.EMPRESA = f.EMPRESA AND f.ID_PARENT = {3} INNER JOIN {1} fic ON i.CODIGO = fic.IDI_PLAN AND fic.ID_PARENT = {4} AND i.EMPRESA = fic.EMPRESA WHERE f.ID is null {5} ", DB.SQLDatabase(
"GESTION",
"IDIOMA"), DB.SQLDatabase(this._DataBase, this._Tabla), _Empresa, _Parent, _TemplateBase._Parent, _TodasEmp ? String.Empty : String.Format(
" AND i.EMPRESA = '{0}' ", _Empresa));
859 lcSql += String.Format(
"SELECT e.CODIGO as 'EMPRESA', '' as 'CODIGO', fic.FICHERO FROM {0} e LEFT JOIN (SELECT r.ID, r.EMPRESA as EMPRESA , r.IDI_PLAN as IDI_PLAN, r.ID_PARENT FROM {1} r WHERE IDI_PLAN = '' AND r.ID_PARENT = {2}) as f ON e.CODIGO = f.EMPRESA AND f.IDI_PLAN = '' AND f.ID_PARENT = {2} INNER JOIN {1} fic ON e.CODIGO = fic.EMPRESA AND fic.ID_PARENT = {3} AND fic.IDI_PLAN = '' WHERE f.ID is null {4} ", DB.SQLDatabase(
"GESTION",
"EMPRESA"), DB.SQLDatabase(this._DataBase, this._Tabla), _Parent, _TemplateBase._Parent, _TodasEmp ? String.Empty : String.Format(
" AND e.CODIGO = '{0}' ", _Empresa));
863 lcSql = String.Format(
"SELECT i.EMPRESA, i.CODIGO, '' as FICHERO FROM {0} i LEFT JOIN (SELECT r.ID, r.EMPRESA COLLATE Modern_Spanish_CS_AI as EMPRESA , r.IDI_PLAN COLLATE Modern_Spanish_CS_AI as IDI_PLAN, r.ID_PARENT FROM {1} r WHERE r.ID_PARENT = {2}) as f ON i.CODIGO = f.IDI_PLAN AND i.EMPRESA = f.EMPRESA AND f.ID_PARENT = {2} WHERE f.ID is null {3} ", DB.SQLDatabase(
"GESTION",
"IDIOMA"), DB.SQLDatabase(this._DataBase, this._Tabla), _Parent, _TodasEmp ? String.Empty : String.Format(
" AND i.EMPRESA = '{0}' ", _Empresa));
865 lcSql += String.Format(
"SELECT e.CODIGO as 'EMPRESA', '' as 'CODIGO', '' as FICHERO FROM {0} e LEFT JOIN (SELECT r.ID, r.EMPRESA as EMPRESA , r.IDI_PLAN as IDI_PLAN, r.ID_PARENT FROM {1} r WHERE IDI_PLAN = '' AND r.ID_PARENT = {2}) as f ON e.CODIGO = f.EMPRESA AND f.IDI_PLAN = '' AND f.ID_PARENT = {2} WHERE f.ID is null {3} ", DB.SQLDatabase(
"GESTION",
"EMPRESA"), DB.SQLDatabase(this._DataBase, this._Tabla), _Parent, _TodasEmp ? String.Empty : String.Format(
" AND e.CODIGO = '{0}' ", _Empresa));
867 DB.SQLExec(lcSql, ref loDt);
870 foreach (DataRow ldRow
in loDt.Rows)
874 lcIdioma = Convert.ToString(ldRow[
"CODIGO"]);
875 lcEmpresa = Convert.ToString(ldRow[
"EMPRESA"]);
876 lcNameFicheroOri = _TipoBase ==
TipoBase.Formato ? _Fichero : Convert.ToString(ldRow[
"FICHERO"]);
879 _CopyTemplate(lcEmpresa, lnCodigo, lcIdioma, lcNameFicheroOri);
891 String lcSql, lcErrorMessage =
"";
892 DataTable loDt =
new DataTable();
895 lcSql = String.Format(
"SELECT DISTINCT a.FICHERO FROM {0} a LEFT JOIN {0} b ON a.FICHERO = b.FICHERO AND a.ID <> b.ID AND b.ID_PARENT <> {1} WHERE a.ID_PARENT = {1} AND a.ID_PARENT > 0 AND b.ID is null", DB.SQLDatabase(
this._DataBase,
this._Tabla), _Parent);
896 DB.SQLExec(lcSql, ref loDt);
898 if (lOk = base._Delete())
901 lcSql = String.Format(
"DELETE w FROM {0} w INNER JOIN {1} e ON e.ID = w.ID_REPLAN WHERE e.ID_PARENT = {2} ", DB.SQLDatabase(_DataBase,
"SAGEREPORTS"), DB.SQLDatabase(_DataBase, this._Tabla), _Parent);
905 foreach (DataRow loRow
in loDt.Rows)
907 if (!_RemoveFile(_ReportPath._IniPamReportStoredPath, Convert.ToString(loRow[
"FICHERO"])))
909 lcErrorMessage += String.Format(
"{1}Se ha producido un error al eliminar el fichero {0}", Convert.ToString(loRow[
"FICHERO"]).Trim(), String.IsNullOrEmpty(lcErrorMessage) ? String.Empty : Environment.NewLine);
914 lcSql = String.Format(
"DELETE FROM {0} WHERE ID_PARENT = {1} AND ID_PARENT > 0 ", DB.SQLDatabase(
this._DataBase,
this._Tabla), _Parent);
918 _Error_Message = lcErrorMessage;
924 private void _CopyTemplate(
string tcEmpresa,
int tnCodigo,
string tcCodigoIdioma =
"",
string tcFichero =
"")
928 lcSql = String.Format(
"INSERT INTO {0} (EMPRESA, TIPO, IDI_PLAN, NOMBRE, FICHERO, ID, ID_PARENT, OBSERVA , GRUPO, TODASEMP) VALUES ('{1}',{2},'{3}', {4}, '{5}', {6}, {7}, {8}, '{9}', {10}); ", DB.SQLDatabase(_DataBase, _Tabla), tcEmpresa, _TipoReport._Codigo, tcCodigoIdioma, DB.SQLString(_Nombre),
string.IsNullOrEmpty(tcFichero) ? _Fichero : tcFichero, tnCodigo, _Codigo, DB.SQLString(_Observaciones), _cGrupoEmpresa, Convert.ToInt16(_TodasEmp));
939 _DataBase = toConfig.
_DB;
940 _oConfigReportTemplates = toConfig;
949 _DataBase =
"COMUNES";
951 _TituloMantenimiento =
"Mantenimiento de plantillas de reports";
952 _Pantalla =
"REPLAN";
954 _Browser_Titulos_Campos =
"Nombre";
955 _Browser_Campos =
"NOMBRE";
956 _Browser_Clave =
"ID";
957 _Browser_Campos_No_Visibles =
"ID";
958 _Browser_Condicion = $
"EMPRESA = '{_Empresa}' AND IDI_PLAN = '{_Idioma}' ";
962 _cGrupoEmpresa = DB.DbComunes.Substring(4, 4);
970 public override void _New(
string tcCodigo =
"")
972 string lcSql, lcNombreFichero;
973 int lnCodigo = _ObtenerCodigoMax() + 1;
977 lcNombreFichero = _TemplateBase._Fichero;
979 lcSql =
string.Format(
"INSERT INTO {0} (EMPRESA, TIPO, IDI_PLAN, ID, ID_PARENT, FICHERO, GRUPO) VALUES ('{1}',{2},'{3}',{4}, {4}, '{5}', '{6}'); ", DB.SQLDatabase(
this._DataBase,
this._Tabla), String.IsNullOrEmpty(_cEmpresa) ? _Empresa : _cEmpresa, _TipoReport._Codigo, String.IsNullOrEmpty(_cIdioma) ? _Idioma : _cIdioma, lnCodigo, lcNombreFichero, _cGrupoEmpresa);
982 this._Codigo = Convert.ToString(lnCodigo);
989 DataTable loDt =
new DataTable();
992 if (_TipoReport == null)
995 string lcSql = $
"SELECT ID FROM {DB.SQLDatabase(_DataBase, _Tabla)} WHERE EMPRESA = '{_Empresa}' AND IDI_PLAN = '{_Idioma}' AND TIPO = {_TipoReport._Codigo} AND ID_PARENT = 0 ";
996 DB.SQLExec(lcSql, ref loDt);
998 if (loDt.Rows.Count > 0)
1002 _Codigo = Convert.ToString(loDt.Rows[0][0])
1006 return loReportTemplate;
1009 private int _ObtenerCodigoMax()
1011 DataTable loDt =
new DataTable();
1013 string lcSql = $
"SELECT MAX(ID) FROM {DB.SQLDatabase(_DataBase, _Tabla)} ";
1014 DB.SQLExec(lcSql, ref loDt);
1016 return loDt.Rows.Count > 0 && !loDt.Rows[0].IsNull(0) ? Convert.ToInt32(loDt.Rows[0][0]) : 0;
1020 private String _GetNameFichero(
string tcEmpresa,
string tcIdioma,
int tnCodigo = 0)
1025 lnCodigo = tnCodigo > 0 ? tnCodigo : _Id;
1026 lcFichero =
string.Format(
"{0}{1}{2}{3}{4}", _cGrupoEmpresa, tcEmpresa, _ReportBase, tcIdioma, lnCodigo);
1040 string lcSql, lcCampo, lcValor;
1041 DataTable loDt =
new DataTable();
1044 lcDataBase = toConfig.
_DB;
1046 lcCampo =
string.IsNullOrEmpty(tcCodigoIdioma) ?
"EMPRESA" :
"IDI_PLAN";
1047 lcValor =
string.IsNullOrEmpty(tcCodigoIdioma) ? tcCodigoEmpresa : tcCodigoIdioma;
1051 lcSql =
string.Format(
"DELETE w FROM {0} w INNER JOIN {1} e ON e.ID = w.ID_REPLAN WHERE w.{2} = '{3}' ", DB.SQLDatabase(lcDataBase,
"SAGEREPORTS"), DB.SQLDatabase(lcDataBase,
"REPLAN"), String.IsNullOrEmpty(tcCodigoIdioma) ?
"EMPRESA" :
"IDIOMA", lcValor);
1054 lcSql =
string.Format(
"SELECT DISTINCT a.FICHERO FROM {0} a LEFT JOIN {0} b ON a.FICHERO = b.FICHERO AND a.ID <> b.ID AND b.{1} <> '{2}' WHERE a.{1} = '{2}' AND a.ID_PARENT > 0 AND b.ID is null", DB.SQLDatabase(lcDataBase,
"REPLAN"), lcCampo, lcValor);
1055 DB.SQLExec(lcSql, ref loDt);
1057 foreach (DataRow loRow
in loDt.Rows)
1059 _RemoveFile(loReportPath._IniPamReportStoredPath, Convert.ToString(loRow[
"FICHERO"]));
1062 lcSql = $
"DELETE FROM {DB.SQLDatabase(lcDataBase, "REPLAN
")} WHERE {lcCampo} = '{lcValor}' ";
1075 string lcDataBase = toConfig.
_DB;
1076 DataTable loDt =
new DataTable();
1079 string lcSql = $
"SELECT * FROM {DB.SQLDatabase(lcDataBase, "REPLAN
")} WHERE EMPRESA = '{tcCodigoEmpresa}' AND IDI_PLAN = '{tcCodigoIdioma}' AND ID_PARENT = 0 ";
1080 DB.SQLExec(lcSql, ref loDt);
1082 List<ITipoReport> loList = toConfig.
_ListadoTiposReport.Where(f => f._CrearRegistroDefecto).ToList();
1086 DataRow[] loRow = loDt.Select(
string.Format(
"TIPO = {0}", loTipo.
_Codigo));
1088 if (loRow.Length == 0)
1090 _CreaRegistroDefecto(toConfig, tcCodigoEmpresa, tcCodigoIdioma, loTipo);
1095 lcSql = $
"SELECT * FROM {DB.SQLDatabase(lcDataBase, "REPLAN
")} WHERE GRUPO = '' AND ID_PARENT > 0 ";
1096 DB.SQLExec(lcSql, ref loDt);
1098 if (loDt.Rows.Count > 0)
1100 foreach (DataRow ldRow
in loDt.Rows)
1104 _Codigo = Convert.ToString(ldRow[
"ID"])
1106 if (!Convert.ToString(ldRow[
"FICHERO"]).StartsWith(_cGrupoEmpresa)) loReport._UpdateFile(
string.Format(
"{0}{1}", _cGrupoEmpresa, ldRow[
"FICHERO"]));
1109 lcSql =
string.Format(
"UPDATE {0} SET GRUPO = '{1}' WHERE GRUPO = '' AND ID_PARENT > 0 ", DB.SQLDatabase(lcDataBase,
"REPLAN"), _cGrupoEmpresa);
1110 DB.SQLExec(lcSql, ref loDt);
1114 lcSql =
string.Format(
"SELECT MIN(a.ID) as ID, a.NOMBRE, a.TIPO FROM {0} a INNER JOIN {0} b ON a.ID_PARENT = b.ID AND b.ID_PARENT = 0 GROUP BY a.NOMBRE, a.TIPO", DB.SQLDatabase(lcDataBase,
"REPLAN"));
1115 DB.SQLExec(lcSql, ref loDt);
1117 foreach (DataRow ldRow
in loDt.Rows)
1119 lcSql =
string.Format(
"UPDATE {0} SET ID_PARENT = {1} WHERE NOMBRE = '{2}' AND TIPO = {3} ", DB.SQLDatabase(lcDataBase,
"REPLAN"), ldRow[
"ID"], ldRow[
"NOMBRE"], ldRow[
"TIPO"]);
1132 string lcDataBase = toConfig.
_DB;
1133 DataTable loDt =
new DataTable();
1136 string lcSql = $
"SELECT * FROM {DB.SQLDatabase(lcDataBase, "REPLAN
")} WHERE EMPRESA = '{tcCodigoEmpresa}' AND ID_PARENT = 0 ";
1137 DB.SQLExec(lcSql, ref loDt);
1139 List<ITipoReport> loList = toConfig.
_ListadoTiposReport.Where(f => f._CrearRegistroDefecto).ToList();
1140 DataTable loDtIdiomas =
Idiomas.
_GetIdiomas(
string.Format(
"EMPRESA = '{0}'", tcCodigoEmpresa),
"CODIGO");
1142 List<String> loListIdioma = (from loRow in loDtIdiomas.AsEnumerable()
1143 select Convert.ToString(loRow[
"CODIGO"])).ToList();
1145 if (!loListIdioma.Contains(
"")) loListIdioma.Add(
"");
1147 foreach (
string lcCodigoIdioma
in loListIdioma)
1151 DataRow[] loRow = loDt.Select(
string.Format(
"TIPO = {0} AND IDI_PLAN = '{1}' ", loTipo.
_Codigo, lcCodigoIdioma));
1153 if (loRow.Length == 0)
1155 _CreaRegistroDefecto(toConfig, tcCodigoEmpresa, lcCodigoIdioma, loTipo);
1161 lcSql =
string.Format(
"SELECT * FROM {0} WHERE GRUPO = '' AND ID_PARENT > 0 ", DB.SQLDatabase(lcDataBase,
"REPLAN"));
1162 DB.SQLExec(lcSql, ref loDt);
1164 if (loDt.Rows.Count > 0)
1166 foreach (DataRow ldRow
in loDt.Rows)
1170 _Codigo = Convert.ToString(ldRow[
"ID"])
1172 if (!Convert.ToString(ldRow[
"FICHERO"]).StartsWith(_cGrupoEmpresa)) loReport._UpdateFile(String.Format(
"{0}{1}", _cGrupoEmpresa, ldRow[
"FICHERO"]));
1175 lcSql = String.Format(
"UPDATE {0} SET GRUPO = '{1}' WHERE GRUPO = '' AND ID_PARENT > 0 ", DB.SQLDatabase(lcDataBase,
"REPLAN"), _cGrupoEmpresa);
1176 DB.SQLExec(lcSql, ref loDt);
1180 lcSql = String.Format(
"SELECT MIN(a.ID) as ID, a.NOMBRE, a.TIPO FROM {0} a INNER JOIN {0} b ON a.ID_PARENT = b.ID AND b.ID_PARENT = 0 GROUP BY a.NOMBRE, a.TIPO", DB.SQLDatabase(lcDataBase,
"REPLAN"));
1181 DB.SQLExec(lcSql, ref loDt);
1183 foreach (DataRow ldRow
in loDt.Rows)
1185 lcSql = String.Format(
"UPDATE {0} SET ID_PARENT = {1} WHERE NOMBRE = '{2}' AND TIPO = {3} ", DB.SQLDatabase(lcDataBase,
"REPLAN"), ldRow[
"ID"], ldRow[
"NOMBRE"], ldRow[
"TIPO"]);
1196 string lcSql, lcNombre, lcObs, lcFichero;
1197 DataTable loDt =
new DataTable();
1200 if (!
string.IsNullOrEmpty(tcFichero.Trim()))
1202 lcDataBase = toConfig.
_DB;
1203 lcFichero =
string.Format(
"{0}{1}{2}{3}", _cGrupoEmpresa, tcCodigoEmpresa, tcFichero.Trim(), tcCodigoIdioma);
1207 lcSql =
string.Format(
"UPDATE {0} SET PREDET = 0 WHERE EMPRESA = '{1}' AND IDI_PLAN = '{2}' AND TIPO = {3} ", DB.SQLDatabase(lcDataBase,
"REPLAN"), tcCodigoEmpresa, tcCodigoIdioma, Convert.ToInt32(toTipo));
1210 lcSql =
string.Format(
"SELECT MAX(ID) FROM {0} ", DB.SQLDatabase(lcDataBase,
"REPLAN"));
1211 DB.SQLExec(lcSql, ref loDt);
1213 lnCodigo = (loDt.Rows.Count > 0 && !loDt.Rows[0].IsNull(0) ? Convert.ToInt32(loDt.Rows[0][0]) : 0) + 1;
1215 lcNombre =
string.Format(
"{0} personalizada", toTipo.__GetDescription());
1216 lcObs =
string.Format(
"Plantilla personalizada de {0} generada automáticamente", toTipo.__GetDescription());
1217 lcFichero =
string.Format(
"{0}{1}{2}{3}{4}", _cGrupoEmpresa, tcCodigoEmpresa, tcFichero.Trim(), tcCodigoIdioma, lnCodigo);
1219 lcSql =
string.Format(
"INSERT INTO {0} (EMPRESA, TIPO, IDI_PLAN, ID, ID_PARENT, PREDET, NOMBRE , OBSERVA, FICHERO, GRUPO) VALUES ('{1}',{2},'{3}',{4}, {4}, 1, '{5}', '{6}', '{7}', '{8}'); ", DB.SQLDatabase(lcDataBase,
"REPLAN"), tcCodigoEmpresa, Convert.ToInt32(toTipo), tcCodigoIdioma, lnCodigo++, lcNombre, lcObs, lcFichero, _cGrupoEmpresa);
1222 _CreateFile(loPath, lcFichero, toTipo);
1224 loDt =
new DataTable();
1225 lcSql =
string.Format(
"SELECT ID FROM {0} WHERE ID = ID_PARENT {1} AND TIPO = {2} ", DB.SQLDatabase(lcDataBase,
"REPLAN"),
string.IsNullOrEmpty(tcCodigoIdioma) ?
string.Empty : String.Format(
" AND EMPRESA = '{0}'", tcCodigoEmpresa), Convert.ToInt32(toTipo));
1226 DB.SQLExec(lcSql, ref loDt);
1228 foreach (DataRow loRow
in loDt.Rows)
1232 _Codigo = Convert.ToString(loRow[
"ID"])
1251 DataTable loDt =
new DataTable();
1253 lcDataBase = toConfig.
_DB;
1255 string lcSql = $
"SELECT * FROM {DB.SQLDatabase(lcDataBase, "REPLAN
")} " +
1256 $
"WHERE GRUPO = '{Convert.ToString(EW_GLOBAL._GetVariable("wc_grupo
"))}' AND EMPRESA = '{tcCodigoEmpresa}' AND IDI_PLAN = '{tcCodigoIdioma}' AND ID_PARENT = 0 ";
1258 DB.SQLExec(lcSql, ref loDt);
1260 List<ITipoReport> loList = toConfig.
_ListadoTiposReport.Where(f => f._CrearRegistroDefecto).ToList();
1264 DataRow[] loRow = loDt.Select(
string.Format(
"TIPO = {0}", loTipo.
_Codigo));
1266 if (loRow.Length == 0)
1272 loDt =
new DataTable();
1273 lcSql =
string.Format(
"SELECT ID FROM {0} WHERE ID = ID_PARENT {1} ", DB.SQLDatabase(lcDataBase,
"REPLAN"),
string.IsNullOrEmpty(tcCodigoIdioma) ?
string.Empty :
string.Format(
" AND EMPRESA <> '{0}'", tcCodigoEmpresa));
1274 DB.SQLExec(lcSql, ref loDt);
1276 foreach (DataRow loRow
in loDt.Rows)
1280 _Codigo = Convert.ToString(loRow[
"ID"])
1298 string lcNombre, lcObs, lcFichero;
1299 DataTable loDt =
new DataTable();
1301 lcDataBase = toConfig.
_DB;
1303 string lcSql = $
"SELECT MAX(ID) FROM {DB.SQLDatabase(lcDataBase, "REPLAN
")} ";
1304 DB.SQLExec(lcSql, ref loDt);
1306 lnCodigo = (loDt.Rows.Count > 0 && !loDt.Rows[0].IsNull(0) ? Convert.ToInt32(loDt.Rows[0][0]) : 0) + 1;
1310 lcObs = $
"Plantilla de {lcNombre} generada automáticamente";
1314 lcSql =
string.Format(
"INSERT INTO {0} (EMPRESA, TIPO, IDI_PLAN, ID, ID_PARENT, PREDET, NOMBRE , OBSERVA, FICHERO, GRUPO) VALUES ('{1}',{2},'{3}',{4}, 0, 1, '{5}', '{6}', '{7}', ''); ", DB.SQLDatabase(lcDataBase,
"REPLAN"), tcCodigoEmpresa, toTipo.
_Codigo, tcCodigoIdioma, lnCodigo++, lcNombre, lcObs, lcFichero);
1319 loDt =
new DataTable();
1320 lcSql =
string.Format(
"SELECT ID FROM {0} WHERE ID = ID_PARENT {1} AND TIPO = {2} ", DB.SQLDatabase(lcDataBase,
"REPLAN"),
string.IsNullOrEmpty(tcCodigoIdioma) ?
string.Empty : $
" AND EMPRESA = '{tcCodigoEmpresa}'", toTipo.
_Codigo);
1321 DB.SQLExec(lcSql, ref loDt);
1323 foreach (DataRow loRow
in loDt.Rows)
1327 _Codigo = Convert.ToString(loRow[
"ID"])
1339 DataTable loDt =
new DataTable();
1341 loDt =
new DataTable();
1342 string lcSql = $
"SELECT * FROM {DB.SQLDatabase(_DataBase, "REPLAN
")} WHERE ID <> {_Id} AND FICHERO = '{_Fichero}' ";
1343 DB.SQLExec(lcSql, ref loDt);
1345 return loDt.Rows.Count == 0;
1354 string lcName = _GetNameFichero(_Empresa, _Idioma, Convert.ToInt32(_Codigo));
1356 if (_CopyFile(toFile.FullName, Path.Combine(_cPathServer, _ReportPath._IniPamReportStoredPath, $
"{lcName}.report") ,
true))
1366 private void _UpdateFile(
string tcNewFile)
1368 tcNewFile = tcNewFile.Trim();
1369 if (!
string.IsNullOrEmpty(tcNewFile))
1371 _CreateFile(tcNewFile, _Fichero);
1372 _Fichero = tcNewFile;
1383 protected string _ReportBase
1387 return _TipoReport._ReportBase;
1394 public bool _IsFileChanged
1398 return _Fichero != _GetNameFichero(_Empresa, _Idioma);
1409 string lcFichero, lcFicheroTmp =
string.Empty;
1411 lcFichero = _GetNameFichero(_Empresa, _Idioma);
1412 if (_Fichero != lcFichero)
1414 lcFicheroTmp = _Fichero;
1416 if (!tlMantenerFichero)
1418 _Fichero = lcFichero;
1422 else if (_IsNew && _oTemplateBase != null)
1424 lcFicheroTmp = _oTemplateBase.
_Fichero;
1427 if (!_ExistsFile()) lbOk = _CreateFile(_Fichero, lcFicheroTmp);
1440 if (_oReportPath == null || !_TipoReport._Codigo.Equals(ultimoCodigoReport))
1445 report = _ConfigReportTemplates._GetReportTPV(_TipoReport._Codigo, _Fichero, _Documento);
1447 catch (Exception exception)
1449 DB.Registrar_Error(exception);
1455 _oReportPath = report.
_Path;
1456 ultimoCodigoReport = _TipoReport._Codigo;
1460 _oReportPath = _ConfigReportTemplates._GetReportPath();
1461 _oReportPath.
_PathServer = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_iniservidor"));
1462 ultimoCodigoReport = -1;
1466 return _oReportPath;
1469 private int ultimoCodigoReport = -1;
1476 private Boolean _ExistsFile()
1478 String lcNombre, lcPathDestino, lcPathPam;
1480 lcPathPam = _ReportPath._IniPamReportStoredPath;
1482 if (!String.IsNullOrEmpty(_Fichero))
1484 lcNombre = String.Format(
"{0}.report", _Fichero);
1485 lcPathDestino = Path.Combine(_cPathServer, lcPathPam, lcNombre);
1487 return File.Exists(lcPathDestino);
1496 private static Boolean _ExistsFile(String tcniPamReportStoredPath, String tcFile)
1499 String lcNombre, lcPathDestino;
1501 if (!String.IsNullOrEmpty(tcFile))
1503 lcNombre = String.Format(
"{0}*.report", tcFile);
1504 lcPathDestino = Path.Combine(_cPathServer, tcniPamReportStoredPath);
1506 lcArr = Directory.GetFiles(lcPathDestino, lcNombre);
1507 return lcArr.Length > 0;
1516 private bool _CreateFile(String tcFileName, String tcFileOri, Boolean tlValidateFile =
false)
1519 string lcNombre =
string.Empty;
1520 string lcPathDestino =
string.Empty;
1521 string lcPathOrigen =
string.Empty;
1522 string lcPathPam =
string.Empty;
1523 string lcPathBase =
string.Empty;
1524 string lcMessage =
string.Empty;
1526 lcNombre =
string.Format(
"{0}.report", tcFileName);
1528 lcPathPam = _ReportPath._IniPamReportStoredPath;
1529 lcPathBase = _ReportPath._BaseReportStoredPath;
1531 if (!
string.IsNullOrEmpty(tcFileOri))
1533 lcPathOrigen = Path.Combine(_cPathServer, lcPathPam,
string.Format(
"{0}.report", tcFileOri));
1534 if (!File.Exists(lcPathOrigen))
1536 lcPathOrigen = Path.Combine(_cPathServer, lcPathBase,
string.Format(
"{0}.report", _ReportBase));
1541 lcPathOrigen = Path.Combine(_cPathServer, lcPathBase,
string.Format(
"{0}.report", _ReportBase));
1544 lcPathDestino = Path.Combine(_cPathServer, lcPathPam, lcNombre);
1547 lbExistFile = File.Exists(lcPathDestino);
1549 if (lbExistFile && _LinkForm)
1551 lcMessage =
String.Format(
"Se ha detectado que el fichero {0} ya existe. ¿ Desea mantener el fichero ?", lcNombre);
1552 lbExistFile = DialogResult.Yes == FUNCTIONS._MessageBox(lcMessage,
"Información", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2);
1555 return !lbExistFile ? _CopyFile(lcPathOrigen, lcPathDestino) : false;
1566 Boolean lbExistFile;
1567 String lcNombre, lcPathDestino, lcPathOrigen, lcPathPam, lcPathBase;
1571 lcNombre =
String.Format(
"{0}.report", tcFileName);
1572 lcPathDestino = Path.Combine(_cPathServer, lcPathPam, lcNombre);
1573 lcPathOrigen = Path.Combine(_cPathServer, lcPathBase,
String.Format(
"{0}.report", toTipo));
1575 lbExistFile = File.Exists(lcPathDestino);
1577 return !lbExistFile ? _CopyFile(lcPathOrigen, lcPathDestino) : false;
1588 private static Boolean _CopyFile(String tcPathOrigen, String tcPathDestino, Boolean tlForze =
false)
1592 if (tcPathOrigen.ToLower() != tcPathDestino.ToLower())
1594 FileInfo loFile =
new FileInfo(tcPathDestino);
1595 if (!loFile.Directory.Exists) Directory.CreateDirectory(loFile.Directory.FullName);
1597 if (!File.Exists(tcPathDestino) || tlForze)
1599 File.Copy(tcPathOrigen, tcPathDestino,
true);
1601 FileAttributes attributes = File.GetAttributes(tcPathDestino);
1603 if ((attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
1605 File.SetAttributes(tcPathDestino, attributes & ~FileAttributes.ReadOnly);
1633 return _oConfigReportTemplates;
1657 return _GetTemplatePredet(toTipoReport.
_Codigo, tcIdioma);
1670 if (
string.IsNullOrEmpty(tcIdioma.Trim()))
1672 loTemplates =
new ReportTemplates(Convert.ToString(EW_GLOBAL._GetVariable(
"wc_empresa")));
1676 loTemplates =
new ReportTemplates(Convert.ToString(EW_GLOBAL._GetVariable(
"wc_empresa")), tcIdioma);
1690 string lcTemplate = tcCodigoTemplate;
1693 _Empresa = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_empresa")),
1694 _Codigo = tcCodigoTemplate
1701 if (
string.IsNullOrEmpty(tcCodigoIdioma.Trim()))
1703 loTemplates =
new ReportTemplates(Convert.ToString(EW_GLOBAL._GetVariable(
"wc_empresa")));
1707 loTemplates =
new ReportTemplates(Convert.ToString(EW_GLOBAL._GetVariable(
"wc_empresa")), tcCodigoIdioma);
1712 lcTemplate = (from loRow in loDt.AsEnumerable()
1713 where Convert.ToInt32(loRow[
"ID_PARENT"]) == loTemplate.
_Parent 1714 select Convert.ToString(loRow[
"ID"])).FirstOrDefault();
1730 public ReportTemplates(
string tcCodigoEmpresa,
string tcCodigoIdioma,
bool tlValidate =
false)
1731 :base(tcCodigoEmpresa, tcCodigoIdioma, tlValidate)
1742 : base(tcCodigoEmpresa, tlValidate)
1768 private DataTable _oTmp = null;
1769 private DataTable _oPlan = null;
1784 public string _Idioma {
get;
set; }
1789 public string _Empresa {
get;
set; }
1796 return _ConfigReportTemplates.
_DB;
1803 protected DataTable _Plan
1810 _oPlan =
new DataTable();
1812 lcSql = String.Format(
"SELECT * FROM {0} WHERE EMPRESA = '{1}' AND IDI_PLAN = '{2}' {3}", DB.SQLDatabase(_DB,
"REPLAN"), _Empresa, _Idioma, (_TipoIdiomaEmpresa ==
TipoIdiomaEmpresa.Idioma && String.IsNullOrEmpty(_Idioma)) ?
" AND 1 = 0 " : String.Empty );
1813 DB.SQLExec(lcSql, ref _oPlan);
1817 foreach (DataRow loRow
in _oTmp.Rows)
1819 List<DataRow> ldRowPlan = (from loRowTmp in _oPlan.AsEnumerable()
1820 where Convert.ToString(loRowTmp[
"ID"]) == Convert.ToString(loRow[
"ID"])
1821 select loRowTmp).ToList();
1823 if (ldRowPlan.Count > 0)
1825 ldRowPlan[0][
"PREDET"] = loRow[
"PREDET"];
1842 return _ConfigReportTemplates._ListadoTiposReport.Where(f => f._Codigo == tnCodigo).First();
1852 return _Templates(toTipoReport.
_Codigo);
1862 List<ReportTemplate> lolistTemplates =
new List<ReportTemplate>();
1863 DataTable loDt = _Plan.Clone();
1865 if (_Plan.Rows.Count > 0)
1867 List<DataRow> loList = (from loRow in _Plan.AsEnumerable()
1868 where Convert.ToInt32(loRow[
"TIPO"]) == tnTipoReport
1869 select loRow).ToList();
1871 foreach (DataRow loRow
in loList)
1873 loDt.ImportRow(loRow);
1896 return _GetPredet(toTipoReport.
_Codigo);
1906 List<DataRow> loList = (from loRow in _Plan.AsEnumerable()
1907 where Convert.ToInt32(loRow[
"TIPO"]) == tnTipoReport && Convert.ToBoolean(loRow[
"PREDET"])
1908 select loRow).ToList();
1910 return loList.Count > 0 ? Convert.ToString(loList[0][
"ID"]) :
string.Empty;
1921 return _GetTemplate(toTipoReport.
_Codigo, tlSearchLastUsetTemplate);
1930 public string _GetTemplate(
int tnTipoReport,
bool tlSearchLastUsetTemplate =
true)
1933 string lcTemplate =
"";
1935 if(tlSearchLastUsetTemplate) lcTemplate = _GetLastUserTemplate(tnTipoReport);
1937 if (
string.IsNullOrEmpty(lcTemplate)) lcTemplate = _GetPredet(tnTipoReport);
1939 if (
string.IsNullOrEmpty(lcTemplate))
1942 List<DataRow> loList = (from loRow in _Plan.AsEnumerable()
1943 where Convert.ToInt32(loRow[
"TIPO"]) == tnTipoReport && Convert.ToInt32(loRow[
"ID_PARENT"]) == 0
1944 select loRow).ToList();
1946 lcTemplate = loList.Count > 0 ? Convert.ToString(loList[0][
"ID"]) :
string.Empty;
1962 if (
int.TryParse(tcCodigo, out
int lnCodigo))
1964 List<DataRow> loList = (from loRow in _Plan.AsEnumerable()
1965 where Convert.ToInt32(loRow[
"ID"]) == lnCodigo
1966 select loRow).ToList();
1968 return loList.Count > 0 ? loList[0] : null;
1979 private string _GetLastUserTemplate(
ITipoReport toTipoReport)
1981 return _GetLastUserTemplate(toTipoReport.
_Codigo);
1989 private string _GetLastUserTemplate(Int32 tnTipoReport)
1991 string lcUsuario, lcSql;
1992 DataTable loDt =
new DataTable();
1994 lcUsuario = usuario.Usuario._This._Codigo;
1996 lcSql =
string.Format(
"SELECT * FROM {0} WHERE USUARIO = '{1}' AND EMPRESA = '{4}' AND TIPO_DOC = {2} {3} ORDER BY FECHA DESC ", DB.SQLDatabase(_DB,
"SAGEREPORTS"), lcUsuario, tnTipoReport, !String.IsNullOrEmpty(_Idioma.Trim()) ? String.Format(
" AND IDIOMA = '{0}' ", _Idioma.Trim()) : String.Empty, _Empresa);
1997 DB.SQLExec(lcSql, ref loDt);
1999 return loDt.Rows.Count > 0 ? Convert.ToString(loDt.Rows[0][
"ID_REPLAN"]) : String.Empty;
2009 _SetPredet(toTipo.
_Codigo, tcCodigo);
2019 List<DataRow> loList = (from loRow in _Plan.AsEnumerable()
2020 where Convert.ToInt32(loRow[
"TIPO"]) == tnTipo
2021 select loRow).ToList();
2023 foreach (DataRow loRow
in loList)
2025 loRow[
"PREDET"] = Convert.ToString(loRow[
"ID"]) == tcCodigo;
2037 return _ExistTemplate(toTipo.
_Codigo, tnCodigoTemplate);
2048 List<DataRow> loList = (from loRow in _Plan.AsEnumerable()
2049 where Convert.ToInt32(loRow[
"TIPO"]) == tnTipo && Convert.ToString(loRow[
"IDI_PLAN"]).Trim() == _Idioma && Convert.ToString(loRow[
"EMPRESA"]) == _Empresa && Convert.ToInt32(loRow[
"ID"]) == tnCodigoTemplate
2050 select loRow).ToList();
2052 return loList.Count > 0;
2063 List<DataRow> loList = (from loRow in _Plan.AsEnumerable()
2064 where Convert.ToBoolean(loRow[
"PREDET"])
2065 select loRow).ToList();
2067 lcSql =
string.Format(
"UPDATE {0} SET PREDET = 0 WHERE EMPRESA = '{1}' AND IDI_PLAN = '{2}' ", DB.SQLDatabase(_DB,
"REPLAN"), _Empresa, _Idioma);
2070 foreach (DataRow loRow
in loList)
2072 lcSql =
string.Format(
"UPDATE {0} SET PREDET = 1 WHERE ID = '{1}' ", DB.SQLDatabase(_DB,
"REPLAN"), loRow[
"ID"]);
2103 #region constructores 2113 this._Empresa = tcCodigoEmpresa;
2114 this._Idioma = tcCodigoIdioma;
2117 if (!String.IsNullOrEmpty(tcCodigoEmpresa) && tlValidate)
ReportTemplate.
_ValidaTemplates(_ConfigReportTemplates, tcCodigoEmpresa, tcCodigoIdioma);
2127 this._Empresa = tcCodigoEmpresa;
2128 this._Idioma = String.Empty;
2131 if (!String.IsNullOrEmpty(tcCodigoEmpresa) && tlValidate)
ReportTemplate.
_ValidaTemplates(_ConfigReportTemplates, tcCodigoEmpresa, String.Empty);
2134 #endregion constructores static void _ValidaTodasTemplates(IConfigReportTemplates toConfig, string tcCodigoEmpresa)
Valida si existen las templates por defecto, sino existen las crea
ITipoReport _TipoReport
Tipo de report
BaseReportPath _GetReportPath()
Obtiene el report path
void _OpenTemplate()
Metodo para editar una template
Clase de negocio base para mantenimientos
bool IsFileBase(string tcFileName)
Indica si es el fichero es base
void ReportTemplatesAddDataBase(IConfig loConfig)
Añade Base de datos de los reports
bool _FileCanBeRemoved()
Indica si el fichero se puede eliminar
ReportTemplates(string tcCodigoEmpresa, bool tlValidate=false)
Constructor
String _Descripcion
Descripción
override void _New(string tcCodigo="")
Da de alta un nuevo registro
eTipoDocumento
Tipo documento
DataTrasp _DataTrasp
Datos de traspaso para la edición de reports
static AddonsController Instance
Instancia al objeto singleton Addons
abstract String _BaseReportStoredPath
Get del path base
String _PathServer
Gets el path del servidor del fichero (.report)
static void _ValidaTemplates(IConfigReportTemplates toConfig, String tcCodigoEmpresa, String tcCodigoIdioma)
Valida si existen las templates por defecto, sino existen las crea
TipoBase
Tipo para heredar segun los ficheros
Clase para la definición de tipos de report
bool _ExistTemplate(int tnTipo, int tnCodigoTemplate)
Indica si existe una plantilla en los datos cargados
Clase para la gestión de los templates
Argumentos para los eventos lanzados por el addons en caso de error
virtual String _ReportFile
Gets o sets el path del fichero .report
Clase documento de DEPOSITO DE COMPRA
override bool _Save()
Guarda la template
void _OpenEditor()
Abre el report en el SageReportDesigner
ReportTemplate()
Constructor
static bool _RemoveFile(string tcInitPathServer, string tcFileName)
Elimina el fichero
ReportTemplatesBase _GetReportTemplates(String tcEmpresa)
Obtiene la clase ReportTemplates de empresa
string _GetPredet(ITipoReport toTipoReport)
Obtiene el predeterminado
Clase documento de venta TPV
List< ITipoReport > _ListadoTiposReport
Listado de tipos de report
static void _RemoveRegistrosDefecto(IConfigReportTemplates toConfig, String tcCodigoEmpresa, String tcCodigoIdioma)
Elimina los registros en idioma y empresa al generar un isioma o empresa nuevo
bool _RemoveFile(string tcFileName)
Elimina el fichero
TipoReport(int tnCodigo, string tcDescripcion, string tcReportBase)
Constructor
ReportTemplate(IConfigReportTemplates toConfig)
Constructor
Clase documento de PRESUPUESTOS
string _GetTemplate(int tnTipoReport, bool tlSearchLastUsetTemplate=true)
Devuelve la plantilla predeteterminada
ITipoReport _GetTipoReport(Int32 tnCodigo)
Obtiene el tipo de report a partir del código
Classe documento Factura de venta
bool _ChangeFile(FileInfo toFile)
Cambia el fichero
BaseReportPath _GetReportPath()
Obtiene el ReportPath
Gestiona las plantillas de los reports
Clase documento de PROPUESTAS DE COMPRA
void _SetPredet(ITipoReport toTipo, string tcCodigo)
Establece el predeterminado
DataTable _Templates(ITipoReport toTipoReport)
Devuelve los registros para un tipo de report
abstract String _IniPamReportStoredPath
Get del path personalizado
Clase abstracta BaseReportPath
ReportTemplates(string tcCodigoEmpresa, string tcCodigoIdioma, bool tlValidate=false)
Constructor
TipoImpresion
Tipos de impresión que soporta la clase
Classe documento Factura de compra
Clase documento de PEDIDOS
Interficie para la definicón de los tipos de report
bool _RemoveFile()
Elimina el fichero
bool _IsFileBase
Indica si es el fichero es base
String _ReportBase
Report Base
Clase de negocio para Etiquetas de envío
static string _GetTemplatePredet(ITipoReport toTipoReport, string tcIdioma)
Obtiene la plantilla predeterminada
bool _ExistTemplate(ITipoReport toTipo, int tnCodigoTemplate)
Indica si existe una plantilla en los datos cargados
TiposReport
Distintos tipos de reports con los que podemos operar
ReportTPV clase que se utiliza para poder inicializar los datos de la clase Report ...
DataTable _GlobalVar
Variables globales
void _RemoveRelTemplate(String tcCodigoEmpresa, String tcCodigoIdioma="")
REmove las templates relacionadas al crear un empresa o idioma
ReportTemplatesBase _GetReportTemplates(String tcEmpresa, String tcIdioma)
Obtiene la clase ReportTemplates de empresa e idioma
string _GetTemplate(ITipoReport toTipoReport, bool tlSearchLastUsetTemplate=true)
Devuelve la plantilla predeteterminada
Definición de la interficie que han de cumplir aquellos clases que quieran modificar los resultados d...
virtual bool _Save()
Actualiza el campo predet
void _SetPredet(int tnTipo, string tcCodigo)
Establece el predeterminado
Clase para indicar el tipo de documento para los campos adicionales
static string _GetEquivalTemplate(string tcCodigoTemplate, string tcCodigoIdioma)
Devuelve a partir de un codigo de template su equivalente para el idioma seleccionado ...
ReportTemplatesBase(String tcCodigoEmpresa, Boolean tlValidate=false)
Constructor
ReportTPV _GetReportTPV(int tnTipo, string tcFichero, dynamic toDoc)
Obtener el ReportTPV
ReportTemplatesBase(String tcCodigoEmpresa, String tcCodigoIdioma, Boolean tlValidate=false)
Constructor
static string _GetDefaultTemplate(ITipoReport toTipoReport)
Obtiene el template para un tipo buscando en la ultima ejecucion, sino el predeterminado ...
Interface para las configuraciones de los ReportTemplates
TipoIdiomaEmpresa
Indica si el objeto trabaja desde empresa o idioma
eTipoDocumento
Detalle los tipos de documento posibles de ventas y compras
_EstadosMantenimiento
Declaro un enum para los estados del mantenimiento.
static string _GetTemplatePredet(int tnTipoReport, string tcIdioma)
Obtiene la plantilla predeterminada
static DataTable _GetIdiomas(String lcFiltro="", String tcCampos="*")
PE-98706 Devuelve todos los registros de idiomas aplicando el filtro
BaseReportPath _Path
Path base
TipoReport
Enum para saber TipoReport
string _GetPredet(int tnTipoReport)
Obtiene el predeterminado
override bool _Save_Before()
Validaciones antes de guardar
CommandManager Commands
Comandos de addons
Clase documento de ALBARANES DE COMPRA
Clase documento de PEDIDOS DE COMPRA
int _Parent
Fichero padre, si ID = ID_PARENT original, ID_PARENT = 0 Registro por defecto
override bool _Delete()
Delete
DataRow _GetTemplate(string tcCodigo)
Retorna el DataRow de los datos de la template
Configuración de los templates de Sage50
virtual void _Refresh()
Inicializa los datos
static void _CreaRegistrosDefecto(IConfigReportTemplates toConfig, string tcCodigoEmpresa, string tcCodigoIdioma)
Crea los registros en idioma y empresa al generar un isioma o empresa nuevo
bool _EditTemplate(bool tlMantenerFichero)
Edita el fichero
static void _CreaRegistroDefecto(IConfigReportTemplates toConfig, string tcCodigoEmpresa, string tcCodigoIdioma, ITipoReport toTipo)
Crea los registros en idioma y empresa al generar un isioma o empresa nuevo
List< String > _ReportNonVisibleFields
Campos que debemos ocultar en las consultas (TALLA, COLOR, PESO ....)
Config _DataTraspConfig
Configuración
override void _Load()
Load
String _DocumentName
Nombre del documento
void _CopyTemplates()
Crea los registros para los otros idiomas y empresa
string _Fichero
Nombre del fichero
DataTable _Templates(Int32 tnTipoReport)
Devuelve los registros para un tipo de report
Clase para el traspaso de información para la generación de expressions en la edición de los reports ...
void _CreateRelTemplate(String tcCodigoEmpresa, String tcCodigoIdioma="")
Crea las templates relacionadas al crear un empresa o idioma
Clase de documentos DEPOSITO