From 5515f57c6c300a4c923cf77c4c7e6912e829d3a4 Mon Sep 17 00:00:00 2001 From: Elena Date: Wed, 27 May 2020 22:17:21 +0200 Subject: [PATCH] =?UTF-8?q?Modificaciones=20columnas=20vsm=20y=20corregido?= =?UTF-8?q?=20fallo=20tama=C3=B1o=20char?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Olivia/olv_limp.h | 2 +- Olivia/olv_limp_thr.cpp | 82 +++++++++++++++++++++++++++++++++++++++-- Olivia/olv_reco_thr.cpp | 63 +++++++++++++++++++++++++++---- 3 files changed, 135 insertions(+), 12 deletions(-) diff --git a/Olivia/olv_limp.h b/Olivia/olv_limp.h index e4cf78f..019637d 100644 --- a/Olivia/olv_limp.h +++ b/Olivia/olv_limp.h @@ -31,7 +31,7 @@ public: //************************************************************************************* //Variables bool socCreado; - char nomb_tto[64]; ///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;insec;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;insec;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;insec;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 diff --git a/Olivia/olv_reco_thr.cpp b/Olivia/olv_reco_thr.cpp index dcb1ac0..1d87860 100644 --- a/Olivia/olv_reco_thr.cpp +++ b/Olivia/olv_reco_thr.cpp @@ -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;insec;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;pplan[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;insec;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; }