diff --git a/mg/mg1100.cpp b/mg/mg1100.cpp index f4e30b195..f963aedfb 100755 --- a/mg/mg1100.cpp +++ b/mg/mg1100.cpp @@ -279,8 +279,12 @@ bool TMask_movmag::notify_righe(TSheet_field& ss, int r, KEY key) { m.update_tot(); } else if (key == K_INS) { // Inserimento - if (r < ss.items() && *ss.cell(r,ss.cid2index( F_AUTOMATICA))==riga_automatica) + if (ss.items() > 0 && *ss.cell(r,ss.cid2index( F_AUTOMATICA)) == riga_automatica) + { + ss.select(r); + m.send_key(K_CTRL + '+', 0); return false; // cannot insert between a row and its generated one + } } else if (key == K_CTRL + K_INS) { // Inserimento accordato @@ -359,7 +363,7 @@ bool TMask_movmag::notify_righe(TSheet_field& ss, int r, KEY key) giac += diff; if (giac < ZERO) - message_box("Attenzione quantità negativa per l'articolo %s", (const char *) ss.sheet_mask().get(F_CODART)); + message_box("Attenzione giacenza negativa per l'articolo %s", (const char *) ss.sheet_mask().get(F_CODART)); } if (m.update_rigamov(r,old_codcaus,old_codart,old_quant)) ss.select(r); @@ -611,21 +615,26 @@ bool TMask_movmag::add_autorows (int r, const char * old_codcaus, const char * o dep = cau_coll.default_dep(); TString tmpstr; int offset=1; + const int items = ss.items(); #define COPIA_SU_AUTO(colnum) {tmpstr=(ss.row(r).get(ss.cid2index(colnum))); ss.row(r+offset).add(tmpstr,ss.cid2index(colnum));} if ((r == ss.items()-1 || r < ss.items()-1 && *ss.cell(r+1,ss.cid2index( F_AUTOMATICA)) != riga_automatica)) { + const int row_to_add = r + offset; // manca, la inserisco - ss.insert(r+offset); - TToken_string & newrow = ss.row(r+offset); + TToken_string & newrow = ss.row(row_to_add); newrow = ss.row(r); + ss.disable_row(row_to_add); + ss.enable_cell(row_to_add, ss.cid2index(F_CODMAG)); + ss.enable_cell(row_to_add, ss.cid2index(F_CODDEP)); newrow.add(TString(1,riga_automatica),ss.cid2index(F_AUTOMATICA)); if (cau_coll.has_default_mag()) newrow.add(mag,ss.cid2index(F_CODMAG)); if (cau_coll.has_default_dep()) newrow.add(dep,ss.cid2index(F_CODDEP)); + newrow.add(cau.caus_collegata(),ss.cid2index(F_CAUSRIG)); COPIA_SU_AUTO(F_PREZZO); - added_some= true; - } + return true; + } \ while (r+offset < ss.items() && *ss.cell(r+offset,ss.cid2index( F_AUTOMATICA))==riga_automatica) { // riporta eventuali cambiamenti della riga "Master" sulle righe automatice @@ -890,7 +899,11 @@ void TApp_movmag::init_modify_mode(TMask& m) FOR_EACH_SHEET_ROW(ss, i, row) { if (row->get_char(0) > ' ') // Tipo riga automatico + { ss.disable_row(i); + ss.enable_cell(i, ss.cid2index(F_CODMAG)); + ss.enable_cell(i, ss.cid2index(F_CODDEP)); + } } } diff --git a/mg/mg1100a.uml b/mg/mg1100a.uml index 21180b84f..2186be69d 100755 --- a/mg/mg1100a.uml +++ b/mg/mg1100a.uml @@ -107,7 +107,6 @@ BEGIN OUTPUT F_DESDEP S0 OUTPUT F_CODMAG CODTAB[1,3] CHECKTYPE NORMAL - STR_EXPR ((#H_GESTGIA=="X")&&(#F_CODDEP!=""))||(#H_GESTGIA!="X") WARNING "Indicare il deposito" MESSAGE CHECK,F_GIAC END