Modificaciones columnas vsm y corregido fallo tamaño char

Gerardo/estandarizacion
Elena 2020-05-27 22:17:21 +02:00
parent 7d216b4bc2
commit 5515f57c6c
3 changed files with 135 additions and 12 deletions

View File

@ -31,7 +31,7 @@ public:
//*************************************************************************************
//Variables
bool socCreado;
char nomb_tto[64]; ///<Nombre del tratamiento para escribir en el shp
char nomb_tto[OLV_SHP_SZ_CAMP_CHAR]; ///<Nombre del tratamiento para escribir en el shp
int pp; ///<Entero para pruebas
int tipo_ambit; ///<Indica si los ámbitos son lineales o puntuales
int n_amb; ///<Número de entidades de ámbitos, la cuenta empieza en 0 porque es la primera capa que se carga

View File

@ -8130,6 +8130,28 @@ BOOL Colv_limp_thr::guarda_cols_ruta_tram(char *path_shp)
}
memset(info,0,ntram* OLV_SHP_SZ_CAMP_SZ);
//M_TOTAL
nt_parc = 0;
for (i = 0; i < olv_limp->nsec; i++)
{
if (olv_limp->sec[i].namb == 0)
continue;
nt = (int)olv_limp->tramos[i].size();
for (it = 0; it < nt; it++)
{
tt = olv_limp->tramos[i][it].long_tr;
//para guardar en número
((double*)info)[nt_parc + it] = tt;
}
nt_parc += nt;
}
if (!dbfmgr.AddCol(path_dbf, "M_TOTAL", GdataTable::Tdouble, &dataDbf))
{
free(info);
return FALSE;
}
memset(info, 0, ntram* OLV_SHP_SZ_CAMP_SZ);
//T_TTO
nt_parc=0;
for(i=0;i<olv_limp->nsec;i++)
@ -8464,6 +8486,33 @@ BOOL Colv_limp_thr::guarda_cols_ruta(char *path_shp)
}
memset(info,0,nsec* OLV_SHP_SZ_CAMP_SZ);
//rellena col m total
isec_novac = 0;
for (i = 0; i < olv_limp->nsec; i++)
{
if (olv_limp->sec[i].namb == 0)
continue;
tt = 0;
if ((olv_limp->nod_instal != -1) && (olv_limp->plan[i].ninsta > 0))
{
tt = olv_limp->plan[i].planif_insta[0].m[OLV_DESP];
tt += olv_limp->plan[i].planif_insta[olv_limp->plan[i].ninsta - 1].m[OLV_DESP];
}
tt += olv_limp->plan[i].m[OLV_DESP] + olv_limp->plan[i].m[OLV_TTO];
//para guardar en número
((double*)info)[isec_novac] = tt;
isec_novac++;
}
if (!dbfmgr.AddCol(path_dbf, "M_TOTAL", GdataTable::Tdouble, &dataDbf))
{
free(info);
return FALSE;
}
memset(info, 0, nsec * OLV_SHP_SZ_CAMP_SZ);
//rellena la info de duración de los desplazamientos
isec_novac=0;
for(i=0;i<olv_limp->nsec;i++)
@ -8482,6 +8531,31 @@ BOOL Colv_limp_thr::guarda_cols_ruta(char *path_shp)
}
memset(info,0,nsec* OLV_SHP_SZ_CAMP_SZ);
//rellena col m insta
isec_novac = 0;
for (i = 0; i < olv_limp->nsec; i++)
{
if (olv_limp->sec[i].namb == 0)
continue;
if ((olv_limp->nod_instal != -1) && (olv_limp->plan[i].ninsta > 0))
{
tt = olv_limp->plan[i].planif_insta[0].m[OLV_DESP];
tt += olv_limp->plan[i].planif_insta[olv_limp->plan[i].ninsta - 1].m[OLV_DESP];
}
//para guardar en número
((double*)info)[isec_novac] = tt;
isec_novac++;
}
if (!dbfmgr.AddCol(path_dbf, "M_INSTA", GdataTable::Tdouble, &dataDbf))
{
free(info);
return FALSE;
}
memset(info, 0, nsec * OLV_SHP_SZ_CAMP_SZ);
//rellena la info de duración de los descansos
isec_novac=0;
for(i=0;i<olv_limp->nsec;i++)
@ -8506,7 +8580,7 @@ BOOL Colv_limp_thr::guarda_cols_ruta(char *path_shp)
{
if(olv_limp->sec[i].namb==0)
continue;
tt=olv_limp->plan[i].m[0]+olv_limp->plan[i].m[1];
tt=olv_limp->plan[i].m[OLV_DESP]+olv_limp->plan[i].m[OLV_TTO];
//para guardar en número
((double*)info)[isec_novac] = tt;
@ -9155,8 +9229,8 @@ ctrl:
if((i==(pp->nelem))&& !mal)
{
//REVISAR
tt=olv_limp->t_ini+ olv_limp->sec[s].cost_ac + olv_limp->t_desc + 2 * olv_limp->t_sal - olv_limp->sec[s].t_despl[1];
quita_t_ult_desc(s,&tt);
olv_limp->t_ini+ olv_limp->sec[s].cost_ac + olv_limp->t_desc + olv_limp->t_sal - olv_limp->sec[s].t_despl[1];
//quita_t_ult_desc(s,&tt);
dame_h_m_s(tt, &h, &m, &seg);
sprintf_s(fila0,256,"%02d;%04d;%s;%s;%s;%s;%02d:%02d:%02d;\r\n",s+1,ii,calle,"","Control - Fin","",h,m,seg);
if(!cc.escribe(fila0))
@ -9180,7 +9254,7 @@ ctrl:
//final
tt = olv_limp->t_ini + olv_limp->sec[s].cost_ac + olv_limp->t_desc + 2 * olv_limp->t_sal;
//////////////////////////////////////////////
dame_h_m_s(tt- olv_limp->t_sal - olv_limp->t_despl[1], &h, &m, &seg);
dame_h_m_s(tt- olv_limp->t_sal - olv_limp->sec[s].t_despl[1], &h, &m, &seg);
if (linst[1] == 0)
sprintf_s(fila0, 256, "%02d;%04d;%s;%s;%s;%s;%02d:%02d:%02d;\r\n", s + 1, ii, "", "", "Vuelta a instalación", "", h, m, seg);
else

View File

@ -1589,7 +1589,7 @@ BOOL Colv_reco_thr::guarda_cols_ruta(char *path_shp)
char path_dbf[MAX_PATH];
double tt;
int h,m,s,j;
int nsec, i, isec_novac;
int nsec, i, isec_novac,p;
ManagerDbfGdataTable dbfmgr;
//cuenta el número de sectores no vacíos
@ -1618,7 +1618,7 @@ BOOL Colv_reco_thr::guarda_cols_ruta(char *path_shp)
memset(info,0,nsec* OLV_SHP_SZ_CAMP_SZ);
AddColsDbf dataDbf(info);
//sustituye la info de hora final
/*//sustituye la info de hora final
isec_novac=0;
for(i=0;i<olv_limp->nsec;i++)
{
@ -1637,7 +1637,33 @@ BOOL Colv_reco_thr::guarda_cols_ruta(char *path_shp)
free(info);
return FALSE;
}
memset(info,0,nsec* OLV_SHP_SZ_CAMP_SZ);
memset(info,0,nsec* OLV_SHP_SZ_CAMP_SZ);*/
//sustituye col m total
isec_novac = 0;
for (i = 0; i < olv_limp->nsec; i++)
{
if (olv_limp->sec[i].namb == 0)
continue;
tt = 0;
for(p=0;p<olv_limp->plan[i].ninsta;p++)
{
tt += olv_limp->plan[i].planif_insta[p].m[OLV_DESP];
}
tt += olv_limp->plan[i].m[OLV_DESP] + olv_limp->plan[i].m[OLV_TTO];
//para guardar en número
((double*)info)[isec_novac] = tt;
isec_novac++;
}
if (!dbfmgr.AddCol(path_dbf, "M_TOTAL", GdataTable::Tdouble, &dataDbf))
{
free(info);
return FALSE;
}
memset(info, 0, nsec * OLV_SHP_SZ_CAMP_SZ);
//sustituye la columna de uds de tratamiento porque hay contenedores que son varias unidades
isec_novac=0;
@ -1697,7 +1723,6 @@ BOOL Colv_reco_thr::guarda_cols_ruta(char *path_shp)
//rellena la info de duración de los desplazamientos a descargar
isec_novac=0;
int p;
for(i=0;i<olv_limp->nsec;i++)
{
tt=0;
@ -1707,9 +1732,9 @@ BOOL Colv_reco_thr::guarda_cols_ruta(char *path_shp)
{
if(olv_limp->plan[i].planif_insta[p].nelem==0)
continue;
tt+=olv_limp->plan[i].planif_insta[p].elem[olv_limp->plan[i].planif_insta[p].nelem-1].coste;
}
//tt=olv_limp->sec[i].cost_ac-olv_limp->plan[i].elem[olv_limp->plan[i].nelem-1].coste-olv_limp->sec[i].t_despl[0]-olv_limp->sec[i].t_despl[1]-olv_reco->t_sal;
if (olv_limp->plan[i].planif_insta[p].ninsta == OLV_IDA_PLANT || olv_limp->plan[i].planif_insta[p].ninsta == OLV_VUELTA_PLANT)
tt+=olv_limp->plan[i].planif_insta[p].elem[olv_limp->plan[i].planif_insta[p].nelem-1].coste;
}
dame_h_m_s(tt, &h, &m, &s);
sprintf_s(&info[isec_novac*OLV_SHP_SZ_CAMP_CHAR],OLV_SHP_SZ_CAMP_CHAR,"%02d:%02d:%02d h",h,m,s);
isec_novac++;
@ -1721,6 +1746,30 @@ BOOL Colv_reco_thr::guarda_cols_ruta(char *path_shp)
}
memset(info,0,nsec* OLV_SHP_SZ_CAMP_SZ);
//añade col m descarg
isec_novac = 0;
for (i = 0; i < olv_limp->nsec; i++)
{
if (olv_limp->sec[i].namb == 0)
continue;
tt = 0;
for (p = 0; p < olv_limp->plan[i].ninsta; p++)
{
if (olv_limp->plan[i].planif_insta[p].ninsta == OLV_IDA_PLANT || olv_limp->plan[i].planif_insta[p].ninsta == OLV_VUELTA_PLANT)
tt += olv_limp->plan[i].planif_insta[p].m[OLV_DESP];
}
//para guardar en número
((double*)info)[isec_novac] = tt;
isec_novac++;
}
if (!dbfmgr.AddCol(path_dbf, "M_DESCARG", GdataTable::Tdouble, &dataDbf))
{
free(info);
return FALSE;
}
memset(info, 0, nsec * OLV_SHP_SZ_CAMP_SZ);
free(info);
return TRUE;
}