/*$Id:$*/
/*21.03.2023	21.03.2023	uospos_m.cpp	Белых А.И.
Меню 
*/
#include "buhg.h"
#include "uospos.h"

int uospos_m(class uospos_rp *rk)
{
char strsql[2048];
int N=0;
int K=0;
class VVOD MENU(3);
class VVOD VV(0);
class iceb_tu_str kod("");
class iceb_tu_str naim("");
class iceb_tu_str pm_ps("");
class iceb_tu_str pm_vbs(rk->pm_vbs.ravno(rk->vbs));
int kom1=0;
int konec=0;

if(rk->datar.getdlinna() <= 1)
 rk->datar.new_plus(iceb_tu_poltekdat());

pm_ps.new_plus(rk->pm_ps.ravno(rk->metka_pm_ps));



VV.VVOD_spisok_add_ZAG(gettext("Распечатать перечень основных средств"));

VV.VVOD_spisok_add_data(rk->datar.ravno(),11);
VV.VVOD_spisok_add_data(rk->shetu.ravno(),255);
VV.VVOD_spisok_add_data(rk->innom.ravno(),255);
VV.VVOD_spisok_add_data(rk->podrp.ravno(),255);
VV.VVOD_spisok_add_data(rk->matotp.ravno(),255);
VV.VVOD_spisok_add_data(rk->naimos.ravno(),255);
VV.VVOD_spisok_add_data(pm_ps.ravno(),255);
VV.VVOD_spisok_add_data(pm_vbs.ravno(),255);

VV.VVOD_spisok_add_MD(gettext("Дата инвентаризации....."));//0
VV.VVOD_spisok_add_MD(gettext("Счёт учета........(,,).."));//1
VV.VVOD_spisok_add_MD(gettext("Инвентарний номер.(,,).."));//2
VV.VVOD_spisok_add_MD(gettext("Подразделение.....(,,).."));//3
VV.VVOD_spisok_add_MD(gettext("Мат.ответственный.(,,).."));//4
VV.VVOD_spisok_add_MD(gettext("Наименование......(,,).."));//5
VV.VVOD_spisok_add_MD(gettext("Подсистема.............."));//6
VV.VVOD_spisok_add_MD(gettext("Балансовая стоимость...."));//7


naz:;

VV.data_plus(6,rk->pm_ps.ravno(rk->metka_pm_ps));
VV.data_plus(7,rk->pm_vbs.ravno(rk->vbs));


//clear();

helstr(LINES-1,0,"F1",gettext("помощь"),
"F2/+",gettext("расчёт"),
"F3",gettext("реквизиты"),
"F4",gettext("очистить"),
"F10",gettext("выход"),NULL);


VV.vramka(-1,-1,0);


while(konec == 0)
 {
  if(N > VV.KLST-1)
    N=0;

  if(N < 0)
    N=VV.KLST-1;


  attron(VV.VVOD_return_cs(iceb_CFS)); 

  VV.vprintw(N,stdscr);
  
  K=getch();

  attroff(VV.VVOD_return_cs(iceb_CFS));
  attron(VV.VVOD_return_cs(iceb_CFM));

  VV.vprintw(N,stdscr);

  if(K == KEY_MOUSE)
    K=mouseklic(&N,VV.PY,VV.PX,VV.MDLS,VV.KLST,stdscr);


  switch(K)
   {

    case KEY_RESIZE: //Изменение размеров экрана
      goto naz;

    case ENTER:

      attroff(VV.VVOD_return_cs(iceb_CFM));
      attron(VV.VVOD_return_cs(iceb_CFV));
      VV.vprintw_clear(N,stdscr);

      if(N == 6)
       {
        attroff(VV.VVOD_return_cs(iceb_CFV));
        MENU.VVOD_delete();


        for(int nom=0; nom < rk->pm_ps.kolih(); nom++)
         MENU.VVOD_spisok_add_MD(rk->pm_ps.ravno(nom));

        while(menu3w(stdscr,&MENU,&rk->metka_pm_ps,-1,-1,0) != 0);
         

        goto naz;
       }

      if(N == 7)
       {
        attroff(VV.VVOD_return_cs(iceb_CFV));
        MENU.VVOD_delete();


        for(int nom=0; nom < rk->pm_vbs.kolih(); nom++)
         MENU.VVOD_spisok_add_MD(rk->pm_vbs.ravno(nom));

        while(menu3w(stdscr,&MENU,&rk->vbs,-1,-1,0) != 0);
         

        goto naz;
       }

      VV.vgetstr(N,stdscr);
      
      attroff(VV.VVOD_return_cs(iceb_CFV));
      attron(VV.VVOD_return_cs(iceb_CFM));

      if(N == 0 && VV.VVOD_spisok_return_data(N)[0] != '\0') /*склад*/
       {
        if(VV.prov_dat(N,1) != 0)
         {
          iceb_t_soob(gettext("Не правильно введена дата!"));
          goto naz;
         }
       }

      if(N == 1 && VV.VVOD_spisok_return_data(N)[0] != '\0') /*склад*/
       {
        sprintf(strsql,"select kod from Sklad where kod=%d",VV.data_ravno_atoi(N));
        if(iceb_t_sql_readkey(strsql) != 1)
         {
          iceb_t_soob(gettext("Не найден код склада в справочнике!"));
          goto naz;
         }    
        if(VV.data_ravno(0)[0] != '\0')  
         {
//          iceb_t_nomnak(VV.data_ravno(0),VV.data_ravno(N),&rk->nomdok,1,1,0);
//          VV.data_plus(2,rk->nomdok.ravno());
         }        
        N++;
        goto naz;
       }

      VV.vprintw(N,stdscr);
      N++;

      break;
      
    case SDN: //Стрелка вниз
     N++;
     break;

    case SUP:  //Стрелка вверх
      N--;
      break;

    case FK1:
      GDITE();
//      iceb_t_pdoc(strsql);
      goto naz;

    case FK2:
    case PLU:
     konec=1;
     break;

    case FK3:
     MENU.VVOD_delete();
     MENU.VVOD_spisok_add_ZAG(gettext("Выберите  нужное и нажмите Enter"));

     MENU.VVOD_spisok_add_MD(gettext("Просмотр списка счетов"));
     MENU.VVOD_spisok_add_MD(gettext("Просмотр списка подразделений"));
     MENU.VVOD_spisok_add_MD(gettext("Просмотр списка мат.-ответственных"));
     MENU.VVOD_spisok_add_MD(gettext("Выход"));

     clearstr(LINES-1,0);
     kom1=0;    
     while(menu3w(stdscr,&MENU,&kom1,-1,-1,0) != 0);

     switch (kom1)
      {
       case 3 :
       case -1:
        goto naz;

       case 0 :
         vibrek("Plansh",&kod,&naim);
         VV.data_z_plus(1,kod.ravno());
         goto naz;
       case 1 :
         if(diruospod(1,&kod,&naim,0) == 0)
           VV.data_z_plus(3,kod.ravno());
         goto naz;
       case 2 :
         if(dirmatot(1,&kod,&naim,0) == 0)
           VV.data_z_plus(4,kod.ravno());
         goto naz;
       }       
      goto naz;


    case FK4:
     VV.VVOD_clear_data();
     goto naz;

     goto naz;

    case FK10:
     return(1);

   }

 }

rk->datar.new_plus(VV.data_ravno(0));
rk->shetu.new_plus(VV.data_ravno(1));
rk->innom.new_plus(VV.data_ravno(2));
rk->podrp.new_plus(VV.data_ravno(3));
rk->matotp.new_plus(VV.data_ravno(4));
rk->naimos.new_plus(VV.data_ravno(5));


if(rk->datar.prov_dat() != 0)
 {
  iceb_t_soob(gettext("Не правильно введена дата!"));
  goto naz;
 }


return(0);
}
