/* $Id:$ */
/*13.11.2024	20.04.1999	Белых А.И.	rasdolgi.c
Получение списка долгов по зарплате организации перед своими
работниками
*/
#include <math.h>
#include        <errno.h>
#include        "buhg.h"

int rasdolgi2(const char *data_nah,const char *data_rash,const char *podr,const char *tabnom,int mras,class spis_oth *oth);
void rasitog(double*,double*,FILE*,int);

extern short	*obud; /*Обязательные удержания*/

extern double	ogrzp[2]; /*Разграниечение зарплаты для расчёта пенсионных*/
extern float    procpen[2]; /*Процент отчисления в пенсионный фонд*/
extern short    kodpn;   /*Код подоходного налога*/
extern short    kodperpn;   /*Код перерасчёта подоходного налога*/

int rasdolgi(class spis_oth *oth)
{

short		dd,md,gd;
class iceb_tu_str bros("");
struct  tm      *bf;
time_t          tmm;
static class iceb_tu_str iceb_tu_mesc("");
static class iceb_tu_str tabn("");
static class iceb_tu_str kp("");
static class iceb_tu_str dat1("");
char		strsql[1024];
short		mras; /*1-только кому должны 2- всех*/
class iceb_tu_str fio("");
int		kom1;
class iceb_tu_str naipod("");
class iceb_tu_str fiov("");
SQLCURSOR       curr;
VVOD MENU(3);

VVOD VV(0);
VV.VVOD_spisok_add_ZAG(gettext("Расчёт долгов по выплате заработной платы"));

VV.VVOD_spisok_add_MD(gettext("Дата начисления.(м.г,,)..."));
VV.VVOD_spisok_add_MD(gettext("Дата долга..(д.м.г)......."));
VV.VVOD_spisok_add_MD(gettext("Код подразделения..(,,)..."));
VV.VVOD_spisok_add_MD(gettext("Табельный номер....(,,)..."));

if(dat1.ravno()[0] == '\0')
 {
  time(&tmm);
  bf=localtime(&tmm);
  sprintf(strsql,"%d.%d.%d",bf->tm_mday,bf->tm_mon+1,bf->tm_year+1900);
  dat1.new_plus(strsql);  
 }

VV.VVOD_spisok_add_data(iceb_tu_mesc.ravno(),128);
VV.VVOD_spisok_add_data(dat1.ravno(),11);
VV.VVOD_spisok_add_data(kp.ravno(),128);
VV.VVOD_spisok_add_data(tabn.ravno(),128);

naz:;

clear();

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

int i=VV.vvod(0,1,1,-1,-1);

iceb_tu_mesc.new_plus(VV.data_ravno(0));
dat1.new_plus(VV.data_ravno(1));
kp.new_plus(VV.data_ravno(2));
tabn.new_plus(VV.data_ravno(3));

class iceb_tu_str nm("");

switch(i)
 {
  case FK1:   /*Помощь*/
   GDITE();
   iceb_t_pdoc("zarp4_3_9.txt");
   goto naz;

  case FK2:
  case PLU:
    break;


  case FK3:

    MENU.VVOD_delete();
    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(menu3(&MENU,&kom1,1,-1,-1) != 0);

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

      case 0 :
        if(dirzarpodr(2,&kp,&nm) == 0)
          VV.data_z_plus(2,kp.ravno());
        goto naz;

      case 1 :
      
        fiov.new_plus("");
        int tmm=0;
        if(dirtab(&tmm,&fiov,0,1) == 0)
         {
//          sprintf(bros,"%d",tmm);
//          VV.data_z_plus(3,bros);
          VV.data_z_plus(3,tmm);
         }
        goto naz;

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

  case ESC:
  case FK10:
    return(1);
  default:
    goto naz;
 }

if(VV.VVOD_spisok_return_data(0)[0] == '\0')
 {
  iceb_t_soob(gettext("Не введено даты начисления !"));
  goto naz;
 }

if(iceb_tu_rsdat(&dd,&md,&gd,dat1.ravno(),0) != 0)
 {
  iceb_t_soob(gettext("Не верно введена дата долга !"));
  goto naz;
 }


VVOD DANET(1);
 
DANET.VVOD_spisok_add_MD(gettext("Распечатать только кому должны ?"));

mras=danet(&DANET,2,stdscr);

return(rasdolgi2(iceb_tu_mesc.ravno(),dat1.ravno(),kp.ravno(),tabn.ravno(),mras,oth));
  
}