示例#1
0
void QmcTypeCompiler::scanScriptStrings()
{
    ScriptStringScanner sss(this);
    sss.scan();
}
示例#2
0
ts::uint32 active_protocol_c::gm_handler(gmsg<GM_HEARTBEAT>&)
{
    run();

    if (auto sss = syncdata.lock_write(true))
    {
        if (!sss().flags.is(F_CFGSAVE_CHECKER))
        {
            if (sss().flags.clearr(F_SAVE_REQUEST))
            {
                save_config(false);
            }
            else if (sss().flags.clearr(F_CONFIG_UPDATED))
            {
                if (sss().flags.is(F_CONFIG_OK))
                    save_config(sss().data.config);
            }
        }
    }

    bool is_online = false;

    // brackets to destruct r
    {
        auto r = syncdata.lock_read();
        cmd_result_e curstate = r().current_state;
        is_online = r().flags.is(F_CURRENT_ONLINE);

        bool is_ac = false;
        if (curstate != CR_OK && r().flags.is(F_ONLINE_SWITCH))
            goto to_offline;

        if (r().flags.is(F_SET_PROTO_OK))
        {
            is_ac = 0 != (r().data.options & active_protocol_data_s::O_AUTOCONNECT);
            if (r().flags.is(F_ONLINE_SWITCH))
            {
                if (!is_ac)
                {
to_offline:
                    r.unlock();
                    ipcp->send(ipcw(AQ_OFFLINE));
                    syncdata.lock_write()().flags.clear(F_ONLINE_SWITCH);
                }
            }
            else if (is_ac && curstate == CR_OK)
            {
                r.unlock();
                ipcp->send(ipcw(AQ_ONLINE));
                syncdata.lock_write()().flags.set(F_ONLINE_SWITCH);
            }
        }
    }

    if (is_online)
    {
        if (typingsendcontact && (typingtime - ts::Time::current()) > 0)
        {
            // still typing
            ipcp->send(ipcw(AQ_TYPING) << typingsendcontact);
        } else
        {
            typingsendcontact = 0;
        }

    } else
    {
        typingsendcontact = 0;
    }

    return 0;
}
示例#3
0
void l_uosindm_create_list (class l_uosindm_data *data)
{
iceb_clock sss(data->window);
GtkListStore *model=NULL;
GtkTreeIter iter;
SQLCURSOR cur,cur1;
char strsql[512];
int  kolstr=0;
SQL_str row,row1;

data->kl_shift=0; //0-отжата 1-нажата  


if(data->treeview != NULL)
  gtk_widget_destroy(data->treeview);

data->treeview = gtk_tree_view_new();


gtk_container_add (GTK_CONTAINER (data->sw), data->treeview);

g_signal_connect(data->treeview,"row_activated",G_CALLBACK(l_uosindm_v_row),data);

GtkTreeSelection *selection=gtk_tree_view_get_selection(GTK_TREE_VIEW(data->treeview));
gtk_tree_selection_set_mode(selection,GTK_SELECTION_SINGLE);
g_signal_connect(selection,"changed",G_CALLBACK(l_uosindm_vibor),data);

gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (data->treeview), TRUE); //Устанавливаются полоски при отображении списка
gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (data->treeview)),GTK_SELECTION_SINGLE);




model = gtk_list_store_new (NUM_COLUMNS+1, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_INT);


sprintf(strsql,"select * from Uosindm where innom=%d order by kod asc",data->innom);

if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
 {
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
  return;
 }
//gtk_list_store_clear(model);

iceb_u_str ss[NUM_COLUMNS];

data->kolzap=0;

while(cur.read_cursor(&row) != 0)
 {
//  printf("%s %s %s %s\n",row[0],row[1],row[2],row[3]);
  


  if(iceb_u_SRAV(data->kod_kat_tv.ravno(),row[0],0) == 0)
    data->snanomer=data->kolzap;

  //Код
  ss[COL_KOD].new_plus(iceb_u_toutf(row[1]));
  
  //Наименование
  ss[COL_NAIM].new_plus("");
  sprintf(strsql,"select naik from Uosdm where kod=%d",atoi(row[1]));
  if(iceb_sql_readkey(strsql,&row1,&cur1,data->window) == 1)
   ss[COL_NAIM].new_plus(iceb_u_toutf(row1[0]));
    
  //единица измерения
  ss[COL_EI].new_plus(iceb_u_toutf(row[2]));

  /*Вес*/
  sprintf(strsql,"%10.10g",atof(row[3]));
  ss[COL_VES].new_plus(strsql);
  //Дата и время записи
  ss[COL_DATA_VREM].new_plus(iceb_u_toutf(iceb_u_vremzap(row[5])));

  //Кто записал
  ss[COL_KTO].new_plus(iceb_kszap(row[4],0,data->window));

  
  gtk_list_store_append (model, &iter);

  gtk_list_store_set (model, &iter,
  COL_KOD,ss[COL_KOD].ravno(),
  COL_NAIM,ss[COL_NAIM].ravno(),
  COL_EI,ss[COL_EI].ravno(),
  COL_VES,ss[COL_VES].ravno(),
  COL_DATA_VREM,ss[COL_DATA_VREM].ravno(),
  COL_KTO,ss[COL_KTO].ravno(),
  NUM_COLUMNS,data->kolzap,
  -1);

  data->kolzap++;
 }
data->kod_kat_tv.new_plus("");

gtk_tree_view_set_model (GTK_TREE_VIEW(data-> treeview),GTK_TREE_MODEL (model));

g_object_unref (GTK_TREE_MODEL (model));

l_uosindm_add_columns (GTK_TREE_VIEW (data->treeview));


if(data->kolzap == 0)
 {
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK3]),FALSE);//Недоступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK5]),FALSE);//Недоступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK2]),FALSE);//Недоступна
 }
else
 {
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK3]),TRUE);//Доступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK5]),TRUE);//Доступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK2]),TRUE);//Доступна
 }

gtk_widget_show (data->treeview);
gtk_widget_show (data->sw);

//Стать подсветкой стороки на нужный номер строки
iceb_snanomer(data->kolzap,&data->snanomer,data->treeview);


iceb_u_str stroka;
iceb_u_str zagolov;
zagolov.plus(gettext("Список драгоценных металлов"));

sprintf(strsql," %s:%d",gettext("Количество записей"),data->kolzap);
zagolov.plus(strsql);
zagolov.ps_plus(data->innom);
zagolov.plus(" ");
zagolov.plus(data->naim_in.ravno());

gtk_label_set_text(GTK_LABEL(data->label_kolstr),zagolov.ravno_toutf());


gtk_widget_show(data->label_kolstr);

}
示例#4
0
gint dvuslf2w_r1(class dvuslf2w_r_data *data)
{
time_t vremn;
time(&vremn);
char strsql[1024];
iceb_u_str repl;
iceb_clock sss(data->window);

short dn,mn,gn;
short dk,mk,gk;

if(iceb_rsdatp(&dn,&mn,&gn,data->rk->datan.ravno(),&dk,&mk,&gk,data->rk->datak.ravno(),data->window) != 0)
 {
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

int tipz=data->rk->prr;


sprintf(strsql,"select * from Usldokum2 where datp >= '%04d-%02d-%02d' and \
datp <= '%04d-%02d-%02d' order by shetu,podr,datp asc",
gn,mn,dn,gk,mk,dk);
SQLCURSOR cur;
int kolstr=0;
if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
 {
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

if(kolstr == 0)
 {
  iceb_menu_soob(gettext("Не найдено ни одной записи !"),data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

char imaf[56];
sprintf(imaf,"dv%d.lst",getpid());

data->rk->imaf.plus(imaf);
data->rk->naimf.plus(gettext("Движение услуг"));

FILE *ff;

if((ff = fopen(imaf,"w")) == NULL)
 {
  iceb_er_op_fil(imaf,"",errno,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
iceb_u_startfil(ff);

fprintf(ff,"\x1B\x4D");
fprintf(ff,"\x0F");

iceb_u_zagolov(gettext("Движение услуг"),dn,mn,gn,dk,mk,gk,organ,ff);
int kst=5;

if(tipz == 0)
 {
  fprintf(ff,"%s\n",gettext("Перечень приходов/расходов"));
  kst++;
 }
if(tipz == 1)
 {
  fprintf(ff,"%s\n",gettext("Перечень приходов"));
  kst++;
 }
if(tipz == 2)
 {
  fprintf(ff,"%s\n",gettext("Перечень расходов"));
  kst++;
 }

if(data->rk->podr.getdlinna() > 1)
 {
  fprintf(ff,"%s:%s\n",gettext("Подразделение"),data->rk->podr.ravno());
  kst++;
 }
if(data->rk->kontr.getdlinna() > 1)
 {
  fprintf(ff,"%s:%s\n",gettext("Код контрагента"),data->rk->kontr.ravno());
  kst++;
 }
if(data->rk->kodop.getdlinna() > 1)
 {
  fprintf(ff,"%s:%s\n",gettext("Код операции"),data->rk->kodop.ravno());
  kst++;
 }
if(data->rk->grupa.getdlinna() > 1)
 {
  fprintf(ff,"%s:%s\n",gettext("Группа"),data->rk->grupa.ravno());
  kst++;
 }
if(data->rk->kodusl.getdlinna() > 1)
 {
  fprintf(ff,"%s:%s\n",gettext("Код услуги"),data->rk->kodusl.ravno());
  kst++;
 }
if(data->rk->shet.getdlinna() > 1)
 {
  fprintf(ff,"%s:%s\n",gettext("Счета учета"),data->rk->shet.ravno());
  kst++;
 }
 
int podr=0;
int mvstr=0,podrl=0;

sprintf(strsql,"%s %d.%d.%d %s %d.%d.%d\n",gettext("Период с"),dn,mn,gn,gettext("по"),
dk,mk,gk);

iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

float kolstr1=0.;
char shet1[30];
memset(shet1,'\0',sizeof(shet1));
char shet[32];
memset(shet,'\0',sizeof(shet));
double ishetk=0.,ishets=0.;
int sli=0;
char naimsh[200];
double itk=0,its=0.;
SQL_str row;
SQL_str row1;
SQLCURSOR cur1;
double cena=0.;
double suma=0.;
double kolih=0.;
char ei[32];
char kontr[20];
char kodop[32];
short metka=0;
int kodzap=0;
char naim[512];
short d,m,g;
short dp,mp,gp;
char naim_kontr[512];

gsapp1(dn,mn,gn,dk,mk,gk,&sli,&kst,ff);


while(cur.read_cursor(&row) != 0)
 {
  iceb_pbar(data->bar,kolstr,++kolstr1);    
  podr=atoi(row[10]);
  strncpy(shet,row[9],sizeof(shet)-1);  

  if(iceb_u_proverka(data->rk->shet.ravno(),shet,1,0) != 0)
     continue;

  if(iceb_u_proverka(data->rk->podr.ravno(),row[10],0,0) != 0)
    continue;

  if(tipz != 0 )
   if(tipz != atoi(row[0]))
       continue;


  
  /*Читаем накладную*/
  sprintf(strsql,"select kontr,kodop from Usldokum \
where datd='%s' and podr=%d and nomd='%s' and tp=%s",
  row[1],podr,row[3],row[0]);

  if(sql_readkey(&bd,strsql,&row1,&cur1) != 1)
   {
    iceb_u_str repl;
    repl.plus(gettext("Не найден документ !"));

    sprintf(strsql,"%s=%s %s=%s %s=%d",
    gettext("Дата"),row[4],
    gettext("Документ"),row[2],
    gettext("Подраделение"),podr);   
    repl.ps_plus(strsql);
    iceb_menu_soob(&repl,data->window);

    fprintf(ff,gettext("Не найден документ !"));
    fprintf(ff,"%s=%s %s=%s %s=%d\n",
    gettext("Дата"),row[4],
    gettext("Документ"),row[2],
    gettext("Подраделение"),podr);   
    continue;
   }

  strncpy(kontr,row1[0],sizeof(kontr)-1);
  strncpy(kodop,row1[1],sizeof(kodop)-1);

  if(iceb_u_proverka(data->rk->kontr.ravno(),kontr,0,0) != 0)
    continue;
  if(iceb_u_proverka(data->rk->kodop.ravno(),kodop,0,0) != 0)
    continue;

  metka=atoi(row[4]);
  kodzap=atoi(row[5]);
  cena=atof(row[7]);
  strncpy(ei,row[8],sizeof(ei)-1);


  if(iceb_u_proverka(data->rk->kodusl.ravno(),row[5],0,0) != 0)
    continue;

  if(metka == 0)
   {
    /*Узнаем наименование материалла*/
    sprintf(strsql,"select naimat,kodgr from Material where kodm=%d",
    kodzap);
    if(sql_readkey(&bd,strsql,&row1,&cur1) != 1)
     {
      fprintf(ff,"%s %d !\n",gettext("Не найден код материалла"),kodzap);
      sprintf(strsql,"%s %d !",gettext("Не найден код материалла"),kodzap);
      iceb_menu_soob(strsql,data->window);
      continue;
     }
   }

  if(metka == 1)
   {
    /*Читаем наименование услуги*/
    sprintf(strsql,"select naius,kodgr from Uslugi where kodus=%d",
    kodzap);
    if(sql_readkey(&bd,strsql,&row1,&cur1) != 1)
     {
      sprintf(strsql,"%s %d !\n",gettext("Не найден код услуги"),kodzap);
      fprintf(ff,"%s %d !\n",gettext("Не найден код услуги"),kodzap);
      iceb_menu_soob(strsql,data->window);
      continue;
     }
   }

  memset(naim,'\0',sizeof(naim));
  strncpy(naim,row1[0],sizeof(naim));

  if(iceb_u_proverka(data->rk->grupa.ravno(),row1[1],0,0) != 0)
     continue;

  if(podrl != podr)
   {
    if(podrl != 0)
     {
      gsapp1_shetl(dn,mn,gn,dk,mk,gk,&sli,&kst,ff);
      fprintf(ff,"%s %d",gettext("Подразделение"),podr);
      fprintf(ff,"----------------------------------\n");
     } 
    podrl=podr;
   } 


  if(iceb_u_SRAV(shet1,shet,0) != 0)
   {
    if(shet1[0] != '\0')
      itgdvus(0,shet1,naimsh,&ishetk,&ishets,&kst,ff);

    memset(naimsh,'\0',sizeof(naimsh));
    sprintf(strsql,"select nais from Plansh where ns='%s'",shet);
    if(sql_readkey(&bd,strsql,&row1,&cur1) != 1)
     {
      sprintf(strsql,gettext("Не найден счет %s в плане счетов !"),shet);
      iceb_menu_soob(strsql,data->window);
     }
    else
     strncpy(naimsh,row1[0],sizeof(naimsh)-1);   

    gsapp1_shetl(dn,mn,gn,dk,mk,gk,&sli,&kst,ff);

    fprintf(ff,"%s %s %s\n",gettext("Счет"),shet,naimsh);
    strcpy(shet1,shet);
   }

  if(metka == 1) //Смотрим дополнение к наименованию
   {
    sprintf(strsql,"select dnaim from Usldokum1 where datd='%s' and \
podr=%s and nomd='%s' and metka=1 and kodzap=%s and tp=%s",
    row[1],row[10],row[3],row[5],row[0]);
    if(sql_readkey(&bd,strsql,&row1,&cur1) == 1)
     {
      strcat(naim," ");
      strcat(naim,row1[0]);
     }    
   }     
  

  /*printw("%d %s\n",mt5.nkr,naim);*/
  mvstr=0;
  
  iceb_u_rsdat(&dp,&mp,&gp,row[2],2);
  iceb_u_rsdat(&d,&m,&g,row[1],2);
  kolih=atof(row[6]);
  

  /*Узнаем наименование контрагента*/
  if(kontr[0] == '0' && iceb_u_pole(kontr,strsql,1,'-') == 0)
     strcpy(kontr,strsql);   

  memset(naim_kontr,'\0',sizeof(naim_kontr));
  sprintf(strsql,"select naikon from Kontragent where kodkon='%s'", kontr);
  if(sql_readkey(&bd,strsql,&row1,&cur1) != 1)
   {
     fprintf(ff,"%s %s !\n",gettext("Не найден код контрагента"),kontr);
     sprintf(strsql,"%s %s !",gettext("Не найден код контрагента"),kontr);
     iceb_menu_soob(strsql,data->window);
   }
  else
    strncpy(naim_kontr,row1[0],sizeof(naim_kontr)-1);

  gsapp1_shetl(dn,mn,gn,dk,mk,gk,&sli,&kst,ff);

  if(atoi(row[0]) == 1)
     strcat(kodop,"+");
  if(atoi(row[0]) == 2)
     strcat(kodop,"-");

  sprintf(strsql,"%s\n",naim);
  iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

  if(mvstr == 0)
   {
     
    fprintf(ff,"\
%-5d %-*.*s %-*s %-*s %14.10g %12.12g %15.2f %15s %02d.%02d.%d %02d.%02d.%d %-7s %3s %s\n",
    kodzap,
    iceb_u_kolbait(35,naim),iceb_u_kolbait(35,naim),naim,
    iceb_u_kolbait(5,ei),ei,
    iceb_u_kolbait(7,row[9]),row[9],
    cena,
    kolih,kolih*cena,row[3],d,m,g,dp,mp,gp,kodop,kontr,naim_kontr);
    if(iceb_u_strlen(naim) > 35)
     {
      gsapp1_shetl(dn,mn,gn,dk,mk,gk,&sli,&kst,ff);
      fprintf(ff,"%5s %s\n"," ",iceb_u_adrsimv(35,naim));
     }
   }
示例#5
0
void prov_usl_create_list (class prov_usl_data *data)
{
iceb_clock sss(data->window);
GtkListStore *model=NULL;
GtkTreeIter iter;
SQLCURSOR cur;
char strsql[512];
int  kolstr=0;
SQL_str row;
//GdkColor color;

//printf("prov_usl_create_list %d\n",data->snanomer);
data->kl_shift=0; //0-отжата 1-нажата  

if(data->treeview != NULL)
  gtk_widget_destroy(data->treeview);

data->treeview = gtk_tree_view_new();


gtk_container_add (GTK_CONTAINER (data->sw), data->treeview);

g_signal_connect(data->treeview,"row_activated",G_CALLBACK(prov_usl_v_row),data);

GtkTreeSelection *selection=gtk_tree_view_get_selection(GTK_TREE_VIEW(data->treeview));
gtk_tree_selection_set_mode(selection,GTK_SELECTION_SINGLE);
g_signal_connect(selection,"changed",G_CALLBACK(prov_usl_vibor),data);

gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (data->treeview), TRUE); //Устанавливаются полоски при отображении списка
gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (data->treeview)),GTK_SELECTION_SINGLE);


model = gtk_list_store_new (NUM_COLUMNS+1, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_LONG, 
G_TYPE_INT,  
G_TYPE_INT,
G_TYPE_INT);

iceb_u_str zapros;

if(data->metka_r == 2)
  sprintf(strsql,"select datp,sh,shk,kodkon,deb,kre,komen,ktoi,vrem,val,kekv \
from Prov where kto='%s' and pod=%d and nomd='%s' and \
datd='%04d-%02d-%02d' and oper='%s' and tz=%d order by datp asc",
  data->metkasys,data->podr,data->nomdok.ravno_filtr(),
  data->gd,data->md,data->dd,data->kodop.ravno_filtr(),data->tipz);

if(data->metka_r == 0)
  sprintf(strsql,"select datp,sh,shk,kodkon,deb,kre,komen,ktoi,vrem,val,kekv \
from Prov where kto='%s' and pod=%d and nomd='%s' and \
datd='%04d-%02d-%02d' and oper='%s' and tz=%d and deb <> 0. order by datp asc",
  data->metkasys,data->podr,data->nomdok.ravno_filtr(),
  data->gd,data->md,data->dd,data->kodop.ravno_filtr(),data->tipz);

if(data->metka_r == 1)
  sprintf(strsql,"select datp,sh,shk,kodkon,deb,kre,komen,ktoi,vrem,val,kekv \
from Prov where kto='%s' and pod=%d and nomd='%s' and \
datd='%04d-%02d-%02d' and oper='%s' and tz=%d and kre <> 0. order by datp asc",
  data->metkasys,data->podr,data->nomdok.ravno_filtr(),
  data->gd,data->md,data->dd,data->kodop.ravno_filtr(),data->tipz);

data->zapros.new_plus(strsql);


if((kolstr=cur.make_cursor(&bd,data->zapros.ravno())) < 0)
 {
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),data->zapros.ravno(),data->window);
  return;
 }
//gtk_list_store_clear(model);

iceb_u_str ss[NUM_COLUMNS];

data->kolzap=0;
data->suma_deb=0.;
data->suma_kre=0.;

while(cur.read_cursor(&row) != 0)
 {
//  printf("%s %s %s %s\n",row[0],row[1],row[2],row[3]);
  
//  if(prov_usl_prov_row(row,&data->rk,data->window) != 0)
//    continue;


//  if(iceb_u_SRAV(data->vvod.god.ravno(),row[0],0) == 0 && iceb_u_SRAV(data->vvod.shet.ravno(),row[1],0) == 0)
//    data->snanomer=data->kolzap;
  
  //Дата
  ss[COL_DATA].new_plus(iceb_u_sqldata(row[0]));
  
  //Счёт
  ss[COL_SHET].new_plus(iceb_u_toutf(row[1]));

  //Счёт корреспондент
  ss[COL_SHET_KOR].new_plus(iceb_u_toutf(row[2]));

  //Контрагент
  ss[COL_KONTR].new_plus(iceb_u_toutf(row[3]));

  //Дебет
  ss[COL_DEBET].new_plus(iceb_u_toutf(row[4]));
  data->suma_deb+=atof(row[4]);
  //Кредит
  ss[COL_KREDIT].new_plus(iceb_u_toutf(row[5]));
  data->suma_kre+=atof(row[5]);
  
  //Коментарий
  ss[COL_KOMENT].new_plus(iceb_u_toutf(row[6]));

  //Дата и время записи
  ss[COL_DATA_VREM].new_plus(iceb_u_toutf(iceb_u_vremzap(row[8])));

  //Кто записал
  ss[COL_KTO].new_plus(iceb_kszap(row[7],0,data->window));

  if(atoi(row[10]) != 0)
    ss[COL_KEKV].new_plus(row[10]);
  else  
    ss[COL_KEKV].new_plus("");
  

  gtk_list_store_append (model, &iter);

  gtk_list_store_set (model, &iter,
  COL_DATA,ss[COL_DATA].ravno(),
  COL_KEKV,ss[COL_KEKV].ravno(),
  COL_SHET,ss[COL_SHET].ravno(),
  COL_SHET_KOR,ss[COL_SHET_KOR].ravno(),
  COL_KONTR,ss[COL_KONTR].ravno(),
  COL_DEBET,ss[COL_DEBET].ravno(),
  COL_KREDIT,ss[COL_KREDIT].ravno(),
  COL_KOMENT,ss[COL_KOMENT].ravno(),
  COL_DATA_VREM,ss[COL_DATA_VREM].ravno(),
  COL_KTO,ss[COL_KTO].ravno(),
  COL_VREM,atol(row[8]),
  COL_KTOZ,atoi(row[7]),
  COL_VAL,atoi(row[9]),
  NUM_COLUMNS,data->kolzap,
  -1);

  data->kolzap++;
 }

gtk_tree_view_set_model (GTK_TREE_VIEW(data-> treeview),GTK_TREE_MODEL (model));

g_object_unref (GTK_TREE_MODEL (model));

prov_usl_add_columns (GTK_TREE_VIEW (data->treeview));

if(data->kolzap == 0)
 {
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK2]),FALSE);//Недоступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK3]),FALSE);//Недоступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK3]),FALSE);//Недоступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK5]),FALSE);//Недоступна
 }
else
 {
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK2]),TRUE);//Доступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK3]),TRUE);//Доступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK3]),TRUE);//Доступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK5]),TRUE);//Доступна
 }

if(data->metka_avp == 0)
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK4]),FALSE);//Недоступна
else 
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK4]),TRUE);//Доступна

gtk_widget_show (data->treeview);
gtk_widget_show (data->sw);

iceb_snanomer(data->kolzap,&data->snanomer,data->treeview);

prov_usl_sapka_menu(data);

gtk_widget_show(data->label_kolstr);


}
示例#6
0
int
main ()
{
  struct ss  ss;
  struct ss  ssa[2];
  struct arraystruct arraystruct;
  string x = make_string ("this is x");
  zzz_type c = make_container ("container");
  zzz_type c2 = make_container ("container2");
  const struct string_repr cstring = { { "const string" } };
  /* Clearing by being `static' could invoke an other GDB C++ bug.  */
  struct nullstr nullstr;
  nostring_type nstype, nstype2;
  struct memory_error me;
  struct ns ns, ns2;
  struct lazystring estring, estring2;
  struct hint_error hint_error;
  struct children_as_list children_as_list;

  nstype.elements = narray;
  nstype.len = 0;

  me.s = "blah";

  init_ss(&ss, 1, 2);
  init_ss(ssa+0, 3, 4);
  init_ss(ssa+1, 5, 6);
  memset (&nullstr, 0, sizeof nullstr);

  arraystruct.y = 7;
  init_s (&arraystruct.x[0], 23);
  init_s (&arraystruct.x[1], 24);

  ns.null_str = "embedded\0null\0string";
  ns.length = 20;

  /* Make a "corrupted" string.  */
  ns2.null_str = NULL;
  ns2.length = 20;

  estring.lazy_str = "embedded x\201\202\203\204" ;

  /* Incomplete UTF-8, but ok Latin-1.  */
  estring2.lazy_str = "embedded x\302";

#ifdef __cplusplus
  S cps;

  cps.zs = 7;
  init_s(&cps, 8);

  SS cpss;
  cpss.zss = 9;
  init_s(&cpss.s, 10);

  SS cpssa[2];
  cpssa[0].zss = 11;
  init_s(&cpssa[0].s, 12);
  cpssa[1].zss = 13;
  init_s(&cpssa[1].s, 14);

  SSS sss(15, cps);

  SSS& ref (sss);

  Derived derived;
  
  Fake fake (42);
#endif

  add_item (&c, 23);		/* MI breakpoint here */
  add_item (&c, 72);

#ifdef MI
  add_item (&c, 1011);
  c.elements[0] = 1023;
  c.elements[0] = 2323;

  add_item (&c2, 2222);
  add_item (&c2, 3333);

  substruct_test ();
  do_nothing ();
#endif

  nstype.elements[0] = 7;
  nstype.elements[1] = 42;
  nstype.len = 2;
  
  nstype2 = nstype;

  eval_sub ();

  bug_14741();      /* break to inspect struct and union */
  return 0;
}
示例#7
0
X509Certificate HTTPSClientSession::serverCertificate()
{
	SecureStreamSocket sss(socket());
	return sss.peerCertificate();
}
示例#8
0
gint zagotkl_r1(class zagotkl_r_data *data)
{
time_t vremn;
time(&vremn);
char strsql[1024];
iceb_u_str repl;
iceb_clock sss(data->window);




short ostkg=0;

iceb_poldan("Отчет в килограммах",strsql,"matnast.alx",data->window);
if(iceb_u_SRAV(strsql,"Вкл",1) == 0)
 ostkg=1;

sprintf(strsql,"select * from Kart");
SQLCURSOR cur;
SQLCURSOR cur1;
SQL_str row;
SQL_str row1;

int kolstr;

if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);

if(kolstr == 0)
 {
  iceb_menu_soob(gettext("Не найдено ни одной записи !"),data->window);
  gtk_widget_destroy(data->window);
  return(FALSE);
 }  

char imaftmp[30];
FILE *ff1;

sprintf(imaftmp,"dv%d.tmp",getpid());
if((ff1 = fopen(imaftmp,"w")) == NULL)
 {
  iceb_er_op_fil(imaftmp,"",errno,data->window);
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

short dk=0,mk=0,gk=0;

iceb_u_rsdat(&dk,&mk,&gk,data->rk->datao.ravno(),1);

short dn=1,mn=1,gn=gk;

sprintf(strsql,"%s\n%s %d.%d.%d %s %d.%d.%d\n",
gettext("Сортируем записи"),
gettext("Период с"),
dn,mn,gn,
gettext("по"),
dk,mk,gk);

iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

int kgrm=0;
int kolstr2=0;
float kolstr1=0.;
char naim[512];

while(cur.read_cursor(&row) != 0)
 {
  iceb_pbar(data->bar,kolstr,++kolstr1);    

  if(iceb_u_proverka(data->rk->sklad.ravno(),row[0],0,0) != 0)
   continue;

  if(iceb_u_proverka(data->rk->shet.ravno(),row[5],0,0) != 0)
   continue;

  kgrm=0;
  memset(naim,'\0',sizeof(naim));
  /*Читаем код группы материалла*/
  sprintf(strsql,"select kodgr,naimat from Material where kodm=%s",row[2]);
  if(sql_readkey(&bd,strsql,&row1,&cur1) != 1)
   {
    printf("%s %s !\n",gettext("Не найден код материалла"),row[2]);
    continue;
   }
  else
   {
    kgrm=atoi(row1[0]);
    strncpy(naim,row1[1],sizeof(naim)-1);
   }

  if(iceb_u_proverka(data->rk->grupa.ravno(),row1[0],0,0) != 0)
   continue;

  if(provndsw(data->rk->nds.ravno(),row) != 0)
    continue;
/****************
  if(kodmz[0] != '\0')
   {
    if(kodmz[0] == '*' && maskmat != NULL)
     {
      if(iceb_u_proverka(maskmat,row[2],0,0) != 0)
         continue;
     }
    else
      if(iceb_u_proverka(kodmz,row[2],0,0) != 0)
         continue;
   }
*****************/
   if(iceb_u_proverka(data->rk->kodmat.ravno(),row[2],0,0) != 0)
         continue;

  kolstr2++;
  fprintf(ff1,"%s|%s|%d|%s|%s|%s|%s|%.10g|%.5g|%s|%s|\n",
  row[5],row[0],kgrm,naim,row[2],row[1],row[4],atof(row[6]),atof(row[9]),
  row[3],row[10]);

 }

fclose(ff1);


if(data->rk->metka_sort == 0) //Сортировать счет-склад-наименование материалла.
  sprintf(strsql,"sort -o %s -t\\| -k1,2 -k2,3n -k4,5 %s",imaftmp,imaftmp);
//  sprintf(strsql,"sort -o %s -t\\| +0 -1 +1n -2 +3 -4 %s",imaftmp,imaftmp);

if(data->rk->metka_sort == 1) //Сортировать счет-склад-группа-наименование материалла.
  sprintf(strsql,"sort -o %s -t\\| -k1,2 -k2,3n -k3,4n -k4,5 %s",imaftmp,imaftmp);
//  sprintf(strsql,"sort -o %s -t\\| +0 -1 +1n -2 +2n -3 +3 -4 %s",imaftmp,imaftmp);

system(strsql); //Запуск сортировки

sprintf(strsql,"%s.\n",gettext("Делаем отчет"));
iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

if((ff1 = fopen(imaftmp,"r")) == NULL)
 {
  iceb_er_op_fil(imaftmp,"",errno,data->window);
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
FILE *ff;
char imaf[32];

sprintf(imaf,"zag%d.lst",getpid());
data->rk->imaf.plus(imaf);

data->rk->naimf.plus(gettext("Пустографка для отчёта материально-ответственного лица"));

if((ff = fopen(imaf,"w")) == NULL)
 {
  iceb_er_op_fil(imaf,"",errno,data->window);
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

char imafkl2[32];

sprintf(imafkl2,"zagg%d.lst",getpid());
data->rk->imaf.plus(imafkl2);

data->rk->naimf.plus(gettext("Пустографка для отчёта материально-ответственного лица с приходами"));
FILE *ffkl2;
if((ffkl2 = fopen(imafkl2,"w")) == NULL)
 {
  iceb_er_op_fil(imafkl2,"",errno,data->window);
  gtk_widget_destroy(data->window);
  return(FALSE);
 }


iceb_u_zagolov(gettext("Оборотная ведомость движния товарно-материальных ценностей"),dn,mn,gn,dk,mk,gk,organ,ff);

SQL_str row_alx;
class SQLCURSOR cur_alx;
const char *imaf_alx={"matzag.alx"};
char zagol[4][512];
memset(zagol,'\0',sizeof(zagol));

sprintf(strsql,"select str from Alx where fil='%s' order by ns asc",imaf_alx);
if((kolstr=cur_alx.make_cursor(&bd,strsql)) < 0)
 {
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
 }

if(kolstr > 0)
 {

  int i1=0;
  while(cur_alx.read_cursor(&row_alx) != 0)
   {
    if(row_alx[0][0] == '#')
     continue;
    strncpy(zagol[i1++],row_alx[0],sizeof(zagol[i1++])-1);
    zagol[i1-1][strlen(zagol[i1-1])-1]='\0';
    if(i1 == 4)
       break;
   }  
 }
  struct tm *bf;
  bf=localtime(&vremn);
  fprintf(ffkl2,"\x0F");

  fprintf(ffkl2,"%-*s %s\n%135s%s\n\
  				%s %s %d.%d.%d%s %s %d.%d.%d%s %10s%s\n\
  					       %s %d.%d.%d%s  %s - %d:%d%54s%s\n",
  iceb_u_kolbait(133,organ),organ,zagol[0]," ",zagol[1],
  gettext("Оборотная ведомость движения товарно-материальных ценностей"),
  gettext("За период с"),
  dn,mn,gn,
  gettext("г."),
  gettext("по"),
  dk,mk,gk,
  gettext("г."),
  " ",
  zagol[2],
  gettext("По состоянию на"),
  bf->tm_mday,bf->tm_mon+1,bf->tm_year+1900,
  gettext("г."),
  gettext("Время"),
  bf->tm_hour,bf->tm_min," ",zagol[3]);

int kst=4;

if(data->rk->shet.getdlinna() > 1)
 {
  fprintf(ff,"%s:%s\n",gettext("Счёт"),data->rk->shet.ravno());
  fprintf(ffkl2,"%s:%s\n",gettext("Счёт"),data->rk->shet.ravno());
  kst++;
 }
if(data->rk->sklad.getdlinna() > 1)
 {
  fprintf(ff,"%s:%s\n",gettext("Склад"),data->rk->sklad.ravno());
  fprintf(ffkl2,"%s:%s\n",gettext("Склад"),data->rk->sklad.ravno());
  kst++;
 }
if(data->rk->grupa.getdlinna() > 1)
 {
  fprintf(ff,"%s:%s\n",gettext("Група"),data->rk->grupa.ravno());
  fprintf(ffkl2,"%s:%s\n",gettext("Група"),data->rk->grupa.ravno());
  kst++;
 }

if(data->rk->kodmat.getdlinna() > 1)
 {
  fprintf(ff,"%s:%s\n",gettext("Код материалла"),data->rk->kodmat.ravno());
  fprintf(ffkl2,"%s:%s\n",gettext("Код материалла"),data->rk->kodmat.ravno());
  kst++;
 }
if(data->rk->nds.getdlinna() > 1)
 {
  fprintf(ff,"%s:%s\n",gettext("НДС"),data->rk->nds.ravno());
  fprintf(ffkl2,"%s:%s\n",gettext("НДС"),data->rk->nds.ravno());
  kst++;
 }
char shbm[30];
char naiskl[100];

memset(shbm,'\0',sizeof(shbm));
memset(naiskl,'\0',sizeof(naiskl));
int skl=0;
int sli=1;
double itg1=0.,itg2=0.,itg3=0.,itg4=0.,itg5=0.,itg6=0.,itg7=0.,itg8=0.;
double k1=0.,s1=0.,k2=0.,s2=0.,k3=0.,s3=0.,k4=0.,s4=0.;
double kk1=0.,ss1=0.,kk2=0.,ss2=0.,kk3=0.,ss3=0.,kk4=0.,ss4=0.;
int kgrmzp=0;
char str[1024];
memset(str,'\0',sizeof(str));
memset(str,'.',233);
int mvsh=0;
kolstr1=0;
char str1[1000];
class ostatok ost;
char shb[20];
int skl1;
int kodm;
int nk;
char ei[32];
char		mnds='\0';
double cena,nds;
char naimshet[512];
char nomn[100];
double ost1=0.,ost2=0.;
while(fgets(str1,sizeof(str1),ff1) != NULL)
 {
  iceb_pbar(data->bar,kolstr2,++kolstr1);    

  iceb_u_pole(str1,shb,1,'|');
  iceb_u_pole(str1,strsql,2,'|');
  skl1=atoi(strsql);
  iceb_u_pole(str1,strsql,3,'|');
  kgrm=atoi(strsql);

  iceb_u_pole(str1,naim,4,'|');
  iceb_u_pole(str1,strsql,5,'|');
  kodm=atoi(strsql);
  iceb_u_pole(str1,strsql,6,'|');
  nk=atoi(strsql);

  /*Остаток по карточкам*/
  ostkarw(dn,mn,gn,dk,mk,gk,skl1,nk,&ost);

  
  if(ost.ostm[0] == 0. && ost.ostm[1] == 0.)
    continue;
    
  iceb_u_pole(str1,ei,7,'|');
  iceb_u_pole(str1,strsql,8,'|');
  cena=atof(strsql);
  iceb_u_pole(str1,strsql,9,'|');
  nds=atof(strsql);

  iceb_u_pole(str1,strsql,10,'|');
  if(atoi(strsql) == 0)
   mnds=' ';
  if(atoi(strsql) == 1)
   mnds='+';
      
  if(kgrmzp != kgrm)
   {
    if(kgrmzp != 0)
     {
      if(data->rk->metka_sort == 1)
      if(itg1 != 0. || itg2 != 0. || itg3 != 0. || itg4 != 0.)
       {
        itgrup_kl(kgrmzp,itg1,itg2,itg3,itg4,itg5,itg6,itg7,itg8,0,ff);
        kst+=2;
       }
     }
    itg1=itg2=itg3=itg4=itg5=itg6=itg7=itg8=0.;
    kgrmzp=kgrm;
   }

  if(iceb_u_SRAV(shb,shbm,1) != 0)
   {
    if(shbm[0] != '\0')
     {
	itskl1(skl,kk1,kk2,kk3,kk4,ss1,ss2,ss3,ss4,str,ff,ffkl2);
	skl=0;
	itsh1(shbm,k1,k2,k3,k4,s1,s2,s3,s4,str,ff,ffkl2);
	kst+=4;
     }
    k1=s1=k2=s2=k3=s3=k4=s4=0.;

    /*Читаем наименование счета*/
    memset(naimshet,'\0',sizeof(naimshet));
    sprintf(strsql,"select nais from Plansh where ns='%s'",shb);
    if(sql_readkey(&bd,strsql,&row,&cur1) != 1)
     {
      printf("Не найден счет %s в плане счетов !\n",shb);
      fprintf(ff,"%s %s !\n",gettext("Не найден счет"),shb);
     }
    else
      strncpy(naimshet,row[0],sizeof(naimshet)-1);       

    sprintf(strsql,"\n%s %s \"%s\"\n",gettext("Счет"),shb,naimshet);
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

    if(kst > kol_strok_na_liste - 10)
     {
      fprintf(ff,"\f");
      kst=0;
      sli++;
     }


    fprintf(ff,"\n%s %s \"%s\"\n",gettext("Счет"),shb,naimshet);
    kst+=2; 
    gsapp2(dn,mn,gn,dk,mk,gk,&sli,&kst,skl1,naiskl,str,ff,ffkl2);

    mvsh=1;

    strcpy(shbm,shb);
   }

  if(skl != skl1)
   {
    if(skl != 0)
     {
      itskl1(skl,kk1,kk2,kk3,kk4,ss1,ss2,ss3,ss4,str,ff,ffkl2);
      kst+=2;
     }
     kk1=ss1=kk2=ss2=kk3=ss3=kk4=ss4=0.;

    /*Читаем наименование склада*/
    naiskl[0]='\0';
    sprintf(strsql,"select naik from Sklad where kod='%d'",skl1);
    if(sql_readkey(&bd,strsql,&row,&cur1) != 1)
     {
      printf("Не найден склад %d в списке складов\n",skl1);
      fprintf(ff,"%s %d !\n",gettext("Не найден склад"),skl1);
     }
    strncpy(naiskl,row[0],sizeof(naiskl));

    sprintf(strsql,"%s: %d %s\n",gettext("Склад"),skl1,naiskl);
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

    if(kst != 0)
    if(kst > kol_strok_na_liste - 10)
     {
      fprintf(ff,"\f");
      kst=0;
      sli++;
     }
    mvsh=1;
    skl=skl1;

   }
  if(mvsh == 1)
   {
      shdtmcf1k(dn,mn,gn,sli,ff,skl,naiskl,ffkl2);
      kst+=6;
    mvsh=0;
   }

  
  sprintf(nomn,"%s.%d.%d",shb,kgrm,nk);

  
    ost1=ost.ostm[0];
    ost2=ost.ostmc[0];
    char ost3[40],ost4[40];
    memset(ost3,'\0',sizeof(ost3));
    memset(ost4,'\0',sizeof(ost4));
    if(ost.ostm[1] != 0.)
       sprintf(ost3,"%10.10g",ost.ostm[1]);
    if(ost.ostmc[1] != 0.)
       sprintf(ost4,"%12.2f",ost.ostmc[1]);

    //Остаток по документам
     
    ostdokw(dn,mn,gn,dk,mk,gk,skl1,nk,&ost);

    fprintf(ff,"\
%4d %-*.*s %-*s %-*s %c%2.2g %7.7g %7.7g %15.2f|               |               |               |               |               |               |               |             |\n%s\n",
    kodm,
    iceb_u_kolbait(40,naim),iceb_u_kolbait(40,naim),naim,
    iceb_u_kolbait(13,nomn),nomn,
    iceb_u_kolbait(10,ei),ei,
    mnds,
    nds,ost1,ost.ostm[0],ost2,str);

    gsapp2(dn,mn,gn,dk,mk,gk,&sli,&kst,skl1,naiskl,str,ff,ffkl2);

    fprintf(ffkl2,"\
%4d %-*.*s %-*s %-*s %c%2.2g %10.10g %10.10g %12.2f %10s %12s|       |       |       |       |       |       |       |       |       |       |         |        |\n%s\n",
    kodm,
    iceb_u_kolbait(40,naim),iceb_u_kolbait(40,naim),naim,
    iceb_u_kolbait(13,nomn),nomn,
    iceb_u_kolbait(10,ei),ei,
    mnds,nds,cena,ost1,ost2,ost3,ost4,str);
     
  k1+=ost.ostm[0];   kk1+=ost.ostm[0]; itg1+=ost.ostm[0];
  s1+=ost.ostmc[0];  ss1+=ost.ostmc[0]; itg5+=ost.ostmc[0];

  k2+=ost.ostm[1];   kk2+=ost.ostm[1];  itg2+=ost.ostm[1];
  s2+=ost.ostmc[1];  ss2+=ost.ostmc[1]; itg6+=ost.ostmc[1];

  k3+=ost.ostm[2];   kk3+=ost.ostm[2];    itg3+=ost.ostm[2];
  s3+=ost.ostmc[2];  ss3+=ost.ostmc[2];   itg7+=ost.ostmc[2];

  k4+=ost.ostm[3];   kk4+=ost.ostm[3];    itg4+=ost.ostm[3];
  s4+=ost.ostmc[3];  ss4+=ost.ostmc[3];   itg8+=ost.ostmc[3];
 }


itskl1(skl,kk1,kk2,kk3,kk4,ss1,ss2,ss3,ss4,str,ff,ffkl2);
itsh1(shbm,k1,k2,k3,k4,s1,s2,s3,s4,str,ff,ffkl2);


iceb_podpis(ffkl2,data->window);

fclose(ffkl2);



iceb_podpis(ff,data->window);
fclose(ff);

 
fclose(ff1);
unlink(imaftmp);

for(int nom=0; nom < data->rk->imaf.kolih(); nom++)
 iceb_ustpeh(data->rk->imaf.ravno(nom),0,data->window);

data->kon_ras=0;

gtk_label_set_text(GTK_LABEL(data->label),gettext("Расчет закончен"));

gtk_widget_set_sensitive(GTK_WIDGET(data->knopka),TRUE);//доступна
gtk_widget_grab_focus(data->knopka);
gtk_widget_show_all(data->window);

iceb_printw_vr(vremn,data->buffer,data->view);

data->voz=0;
return(FALSE);

}
示例#9
0
gint buhkomw_r1(class buhkomw_r_data *data)
{
iceb_clock sss(data->window);
time_t vremn;
time(&vremn);
char strsql[1024];
iceb_u_str repl;

short dn,mn,gn;
short dk,mk,gk;

if(iceb_rsdatp(&dn,&mn,&gn,data->rk->datan.ravno(),&dk,&mk,&gk,data->rk->datak.ravno(),data->window) != 0)
 {
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
sprintf(strsql,"%d.%d.%d => %d.%d.%d\n",dn,mn,gn,dk,mk,gk);
iceb_printw(strsql,data->buffer,data->view);


SQL_str row_alx;
class SQLCURSOR cur_alx;
int kolstr=0;

sprintf(strsql,"select str from Alx where fil='buhkom.alx' order by ns asc");
if((kolstr=cur_alx.make_cursor(&bd,strsql)) < 0)
 {
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

if(kolstr == 0)
 {
  sprintf(strsql,"%s %s!",gettext("Не найдена настройка"),"buhkom.alx");
  iceb_menu_soob(strsql,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
class iceb_u_spisok koment;
char bros[500];

while(cur_alx.read_cursor(&row_alx) != 0)
 {
  if(row_alx[0][0] == '#')
   continue;


  if(iceb_u_polen(row_alx[0],bros,sizeof(bros),1,'|') != 0) 
   continue;
  koment.plus(bros);
 }
 
int kol_koment=koment.kolih();
if(kol_koment == 0)
 {
  iceb_menu_soob(gettext("Не найдено ни одной настройки !"),data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
SQL_str row;
SQLCURSOR cur; 

sprintf(strsql,"select sh,shk,deb,kre,komen from Prov \
where val=0 and datp >= '%d-%02d-%02d' and \
datp <= '%d-%02d-%02d' and komen <> ''",gn,mn,dn,gk,mk,dk);
if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
 {
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
 }

if(kolstr == 0)
 {
  iceb_menu_soob(gettext("Не найдено проводок !"),data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
int nomer=0;
float kolstr1=0.;
class iceb_u_spisok sh_shk_kom;
double deb,kre;
iceb_u_double debet;
iceb_u_double kredit;
while(cur.read_cursor(&row) != 0)
 {
//  printw("%s %s %s %s %s\n",row[0],row[1],row[2],row[3],row[4]);
//  refresh();
  
//  strzag(LINES-1,0,kolstr,++kolstr1);
  iceb_pbar(data->bar,kolstr,++kolstr1);
  
  if(iceb_u_proverka(data->rk->shet.ravno(),row[0],0,0) != 0)
    continue;
//  if(iceb_u_proverka(sheta,row[1],0,0) != 0)
//    continue;
  
  if((nomer=prov_kom(&koment,row[4],kol_koment)) < 0)
   continue;
//  printw("Подходит %s\n",koment.ravno(nomer));
//  OSTANOV();
  deb=atof(row[2]);
  kre=atof(row[3]);
  
  sprintf(strsql,"%s|%s|%s",row[0],koment.ravno(nomer),row[1]);
  if((nomer=sh_shk_kom.find(strsql)) < 0)
    sh_shk_kom.plus(strsql);
  debet.plus(deb,nomer);
  kredit.plus(kre,nomer);    
 }

int kol_shet=sh_shk_kom.kolih();
if(kol_shet == 0)
 {
  iceb_menu_soob(gettext("Не найдено ни одной проводки с указанными комментариями !"),data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

char imaf_sort[40];
sprintf(imaf_sort,"kom%d.tmp",getpid());
FILE *ff;

if((ff = fopen(imaf_sort,"w")) == NULL)
 {
  iceb_er_op_fil(imaf_sort,"",errno,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

for(int i=0; i < kol_shet ; i++)
 fprintf(ff,"%s|%.2f|%.2f|\n",sh_shk_kom.ravno(i),debet.ravno(i),kredit.ravno(i));

fclose(ff);

//sprintf(strsql,"sort -o %s -t\\|  +0 -1 +1 -2  %s",imaf_sort,imaf_sort);
sprintf(strsql,"sort -o %s -t\\|  -k1,2 -k2,3  %s",imaf_sort,imaf_sort);

system(strsql);

FILE *ff_sort;
if((ff_sort = fopen(imaf_sort,"r")) == NULL)
 {
  iceb_er_op_fil(imaf_sort,"",errno,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

unlink(imaf_sort);

char imaf[40];
sprintf(imaf,"kom%d.lst",getpid());

if((ff = fopen(imaf,"w")) == NULL)
 {
  iceb_er_op_fil(imaf,"",errno,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

data->rk->imaf.new_plus(imaf);
data->rk->naimf.new_plus(gettext("Свод по комментариям (дебет и кредит)"));

iceb_u_zagolov(gettext("Отчёт по комментариям"),dn,mn,gn,dk,mk,gk,organ,ff);

if(data->rk->shet.getdlinna() > 1)
  fprintf(ff,"%s:%s\n",gettext("Счёт"),data->rk->shet.ravno());

char shet[32];
char shet_z[32];
char shetk[32];
char komentar[512];
char komentar_z[512];
double ideb=0.,ikre=0.;
double idebk=0.,ikrek=0.;
char stroka[1024];
char naim[512];

memset(shet_z,'\0',sizeof(shet_z));
memset(komentar_z,'\0',sizeof(komentar_z));
//распечатываем дебет и кредит
idebk=ikrek=0.;
ideb=ikre=0.;
while(fgets(stroka,sizeof(stroka),ff_sort) != NULL)
 {
  iceb_u_polen(stroka,shet,sizeof(shet),1,'|');
  iceb_u_polen(stroka,komentar,sizeof(komentar),2,'|');
  iceb_u_polen(stroka,shetk,sizeof(shetk),3,'|');
  iceb_u_polen(stroka,strsql,sizeof(strsql),4,'|');
  deb=atof(strsql);
  iceb_u_polen(stroka,strsql,sizeof(strsql),5,'|');
  kre=atof(strsql);
    
  if(iceb_u_SRAV(komentar_z,komentar,0) != 0)
   {
    if(komentar_z[0] != '\0')
      buhkom_it(0,idebk,ikrek,ff);
    idebk=ikrek=0.;
    strcpy(komentar_z,komentar);
   }

  if(iceb_u_SRAV(shet,shet_z,0) != 0)
   {
    if(shet_z[0] != '\0')
     {
      if(idebk != 0. || ikrek != 0.)
       {
        buhkom_it(0,idebk,ikrek,ff);
        idebk=ikrek=0.;
       }
      buhkom_it(1,ideb,ikre,ff);
     }
    memset(naim,'\0',sizeof(naim));
    sprintf(strsql,"select nais from Plansh where ns='%s'",shet);
    if(sql_readkey(&bd,strsql,&row,&cur) == 1)
     strncpy(naim,row[0],sizeof(naim)-1);

    buhkom_sh(shet,naim,ff);
     
    ideb=ikre=0.;
    strcpy(shet_z,shet);
   }

  fprintf(ff,"%-*s %-*s %10.2f %10.2f\n",
  iceb_u_kolbait(10,komentar),komentar,
  iceb_u_kolbait(7,shetk),shetk,
  deb,kre);
  
  ideb+=deb;
  ikre+=kre;
  idebk+=deb;
  ikrek+=kre;

 }
buhkom_it(0,idebk,ikrek,ff);
buhkom_it(1,ideb,ikre,ff);

iceb_podpis(ff,data->window);
fclose(ff);

rewind(ff_sort);

char imaf_deb[40];
sprintf(imaf_deb,"komd%d.lst",getpid());
if((ff = fopen(imaf_deb,"w")) == NULL)
 {
  iceb_er_op_fil(imaf_deb,"",errno,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
data->rk->imaf.plus(imaf_deb);
data->rk->naimf.plus(gettext("Свод по комментариям (дебет)"));
iceb_u_zagolov(gettext("Отчёт по комментариям"),dn,mn,gn,dk,mk,gk,organ,ff);

if(data->rk->shet.getdlinna() > 1)
  fprintf(ff,"%s:%s\n",gettext("Счёт"),data->rk->shet.ravno());


memset(shet_z,'\0',sizeof(shet_z));
memset(komentar_z,'\0',sizeof(komentar_z));
//распечатываем дебет
while(fgets(stroka,sizeof(stroka),ff_sort) != NULL)
 {

  iceb_u_polen(stroka,strsql,sizeof(strsql),4,'|');
  deb=atof(strsql);
  if(deb == 0.)
   continue;

  iceb_u_polen(stroka,shet,sizeof(shet),1,'|');
  iceb_u_polen(stroka,komentar,sizeof(komentar),2,'|');
  iceb_u_polen(stroka,shetk,sizeof(shetk),3,'|');
    
  if(iceb_u_SRAV(komentar_z,komentar,0) != 0)
   {
    if(komentar_z[0] != '\0')
      buhkom_it_dk(0,idebk,ff);
    idebk=ikrek=0.;
    strcpy(komentar_z,komentar);
   }

  if(iceb_u_SRAV(shet,shet_z,0) != 0)
   {
    if(shet_z[0] != '\0')
     {
      if(idebk != 0. || ikrek != 0.)
       {
        buhkom_it_dk(0,idebk,ff);
        idebk=ikrek=0.;
       }
      buhkom_it_dk(1,ideb,ff);
     }
    memset(naim,'\0',sizeof(naim));
    sprintf(strsql,"select nais from Plansh where ns='%s'",shet);
    if(sql_readkey(&bd,strsql,&row,&cur) == 1)
     strncpy(naim,row[0],sizeof(naim)-1);

    buhkom_sh_deb(shet,naim,ff);
     
    ideb=ikre=0.;
    strcpy(shet_z,shet);
   }

  fprintf(ff,"%-*s %-*s %10.2f\n",
  iceb_u_kolbait(10,komentar),komentar,
  iceb_u_kolbait(7,shetk),shetk,deb);
  
  ideb+=deb;
  idebk+=deb;

 }
buhkom_it_dk(0,idebk,ff);
buhkom_it_dk(1,ideb,ff);


iceb_podpis(ff,data->window);
fclose(ff);

rewind(ff_sort);

char imaf_kre[40];
sprintf(imaf_kre,"komk%d.lst",getpid());
if((ff = fopen(imaf_kre,"w")) == NULL)
 {
  iceb_er_op_fil(imaf_kre,"",errno,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
data->rk->imaf.plus(imaf_kre);
data->rk->naimf.plus(gettext("Свод по комментариям (кредит)"));
iceb_u_zagolov(gettext("Отчёт по комментариям"),dn,mn,gn,dk,mk,gk,organ,ff);

if(data->rk->shet.getdlinna() > 1)
  fprintf(ff,"%s:%s\n",gettext("Счёт"),data->rk->shet.ravno());


memset(shet_z,'\0',sizeof(shet_z));
memset(komentar_z,'\0',sizeof(komentar_z));
//распечатываем кредит
while(fgets(stroka,sizeof(stroka),ff_sort) != NULL)
 {
  iceb_u_polen(stroka,strsql,sizeof(strsql),5,'|');
  kre=atof(strsql);
  if(kre == 0.)
   continue;

  iceb_u_polen(stroka,shet,sizeof(shet),1,'|');
  iceb_u_polen(stroka,komentar,sizeof(komentar),2,'|');
  iceb_u_polen(stroka,shetk,sizeof(shetk),3,'|');
    
  if(iceb_u_SRAV(komentar_z,komentar,0) != 0)
   {
    if(komentar_z[0] != '\0')
      buhkom_it_dk(0,ikrek,ff);
    ikrek=0.;
    strcpy(komentar_z,komentar);
   }

  if(iceb_u_SRAV(shet,shet_z,0) != 0)
   {
    if(shet_z[0] != '\0')
     {
      if(ikrek != 0.)
       {
        buhkom_it_dk(0,ikrek,ff);
        ikrek=0.;
       }
      buhkom_it_dk(1,ikre,ff);
     }
    memset(naim,'\0',sizeof(naim));
    sprintf(strsql,"select nais from Plansh where ns='%s'",shet);
    if(sql_readkey(&bd,strsql,&row,&cur) == 1)
     strncpy(naim,row[0],sizeof(naim)-1);

    buhkom_sh_kre(shet,naim,ff);
     
    ikre=0.;
    strcpy(shet_z,shet);
   }

  fprintf(ff,"%-*s %-*s %10.2f\n",
  iceb_u_kolbait(10,komentar),komentar,
  iceb_u_kolbait(7,shetk),shetk,kre);
  
  ikre+=kre;
  ikrek+=kre;

 }
buhkom_it_dk(0,ikrek,ff);
buhkom_it_dk(1,ikre,ff);


iceb_podpis(ff,data->window);
fclose(ff);




//Распечатываем проводки

rewind(ff_sort);

char imaf_prov[40];
sprintf(imaf_prov,"komp%d.lst",getpid());
if((ff = fopen(imaf_prov,"w")) == NULL)
 {
  iceb_er_op_fil(imaf_prov,"",errno,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
data->rk->imaf.plus(imaf_prov);
data->rk->naimf.plus(gettext("Отчёт по комментариям"));
iceb_u_zagolov(gettext("Отчёт по комментариям"),dn,mn,gn,dk,mk,gk,organ,ff);

if(data->rk->shet.getdlinna() > 1)
  fprintf(ff,"%s:%s\n",gettext("Счёт"),data->rk->shet.ravno());

short d,m,g;
char naikon[512];
SQL_str row1;
SQLCURSOR cur1; 
kolstr1=0;
ideb=ikre=0.;
memset(shet_z,'\0',sizeof(shet_z));
memset(komentar_z,'\0',sizeof(komentar_z));
char komentar_prov[512];

while(fgets(stroka,sizeof(stroka),ff_sort) != NULL)
 {
//  strzag(LINES-1,0,kol_shet,++kolstr1);
  iceb_pbar(data->bar,kol_shet,++kolstr1);
  
  iceb_u_polen(stroka,shet,sizeof(shet),1,'|');
  iceb_u_polen(stroka,komentar,sizeof(komentar),2,'|');
  iceb_u_polen(stroka,shetk,sizeof(shetk),3,'|');

  if(iceb_u_SRAV(komentar_z,komentar,0) != 0)
   {
    if(komentar_z[0] != '\0')
      buhkomw_ri(idebk,ikrek,0,ff);
    idebk=ikrek=0.;
    strcpy(komentar_z,komentar);
   }

  if(iceb_u_SRAV(shet,shet_z,0) != 0)
   {
    if(shet_z[0] != '\0')
     {
      if(idebk != 0. || ikrek != 0.)
       {
        buhkomw_ri(idebk,ikrek,0,ff);
        idebk=ikrek=0.;
       }
      buhkomw_ri(ideb,ikre,1,ff);
     }
    memset(naim,'\0',sizeof(naim));
    sprintf(strsql,"select nais from Plansh where ns='%s'",shet);
    if(sql_readkey(&bd,strsql,&row,&cur) == 1)
     strncpy(naim,row[0],sizeof(naim)-1);

    fprintf(ff,"\n%s %s\n",shet,naim);
    buhkomw_rs(ff);
     
    ideb=ikre=0.;
    strcpy(shet_z,shet);
   }
    
  sprintf(strsql,"select * from Prov \
where val=0 and datp >= '%d-%02d-%02d' and \
datp <= '%d-%02d-%02d' and sh='%s' and shk='%s'  and komen <> ''",gn,mn,dn,gk,mk,dk,shet,shetk);
  int kolstr;
  if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
    iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);

  if(kolstr == 0)
   continue;

  while(cur.read_cursor(&row) != 0)
   {
    if(row[13][0] == '\0')
     continue;
    if(iceb_u_strstrm(row[13],komentar) == 0)
      continue;
    iceb_u_rsdat(&d,&m,&g,row[1],2);
    deb=atof(row[9]);
    kre=atof(row[10]);
    ideb+=deb;
    ikre+=kre;
    idebk+=deb;
    ikrek+=kre;
    
    memset(naikon,'\0',sizeof(naikon));;
    
    if(row[4][0] != '\0')
     {  
      sprintf(strsql,"select naikon from Kontragent where kodkon='%s'",
      row[4]);
      int i;
      if((i=sql_readkey(&bd,strsql,&row1,&cur1)) != 1)
       {
        printf("%02d.%02d.%d %-5s %-5s %-5s %-3s %-4s %10.2f %10.2f %s%-10.10s\n\
  Error %d\n",      
        d,m,g,row[2],row[3],row[4],row[5],row[6],
        deb,kre,row[8],row[13],i);

        sprintf(strsql,"%s %s",gettext("Не найден код контрагента"),row[4]);
        iceb_menu_soob(strsql,data->window);

       }
      else
       strncpy(naikon,row1[0],sizeof(naikon)-1);
     }       

    sozkom(komentar_prov,sizeof(komentar_prov),row[13],row[5],row[8]);

    fprintf(ff,"%02d.%02d.%4d %-*s %-*s %-*s %-3s%4s %-*s %10s",
    d,m,g,
    iceb_u_kolbait(6,row[2]),row[2],
    iceb_u_kolbait(6,row[3]),row[3],
    iceb_u_kolbait(5,row[4]),row[4],
    row[5],row[11],
    iceb_u_kolbait(10,row[6]),row[6],
    iceb_u_prnbr(deb));

    fprintf(ff," %10s %s %-*s %s\n",
    iceb_u_prnbr(kre),
    row[8],
    iceb_u_kolbait(32,komentar_prov),komentar_prov,
    naikon);
   }   
 }
buhkomw_ri(idebk,ikrek,0,ff);
buhkomw_ri(ideb,ikre,1,ff);


iceb_podpis(ff,data->window);
fclose(ff);

fclose(ff_sort);

for(int nom=0; nom < data->rk->imaf.kolih(); nom++)
 iceb_ustpeh(data->rk->imaf.ravno(nom),3,data->window);



gtk_label_set_text(GTK_LABEL(data->label),gettext("Расчет закончен"));

data->kon_ras=0;
gtk_widget_set_sensitive(GTK_WIDGET(data->knopka),TRUE);//доступна
gtk_widget_grab_focus(data->knopka);
gtk_widget_show_all(data->window);

iceb_printw_vr(vremn,data->buffer,data->view);

data->voz=0;

return(FALSE);

}
示例#10
0
void dng_iptc::SpoolString (dng_stream &stream,
							const dng_string &s,
							uint8 dataSet,
							uint32 maxChars,
							CharSet charSet)
	{
	
	if (s.IsEmpty ())
		{
		return;
		}
		
	stream.Put_uint16 (0x1C02);
	stream.Put_uint8  (dataSet);
	
	dng_string ss (s);
	
	ss.SetLineEndingsToReturns ();
	
	if (charSet == kCharSetUTF8)
		{
	
		// UTF-8 encoding.
		
		if (ss.Length () > maxChars)
			{
			ss.Truncate (maxChars);
			}
			
		uint32 len = ss.Length ();
			
		stream.Put_uint16 ((uint16) len);
		
		stream.Put (ss.Get (), len);
		
		}
		
	else
		{
	
		// System character set encoding.
		
		dng_memory_data buffer;
		
		uint32 len = ss.Get_SystemEncoding (buffer);
		
		if (len > maxChars)
			{
			
			uint32 lower = 0;
			uint32 upper = ss.Length () - 1;
			
			while (upper > lower)
				{
				
				uint32 middle = (upper + lower + 1) >> 1;
				
				dng_string sss (ss);
				
				sss.Truncate (middle);
				
				len = sss.Get_SystemEncoding (buffer);
				
				if (len <= maxChars)
					{
					
					lower = middle;
					
					}
					
				else
					{
					
					upper = middle - 1;
					
					}
				
				}
				
			ss.Truncate (lower);
			
			len = ss.Get_SystemEncoding (buffer);
			
			}
		
		stream.Put_uint16 ((uint16) len);
		
		stream.Put (buffer.Buffer_char (), len);
		
		}
示例#11
0
gint spizw_r1(class spizw_r_data *data)
{
iceb_clock sss(data->window);
time_t vremn;
time(&vremn);
char strsql[1024];
short ds,ms,gs;

//iceb_poldan("Н.Д.С.",bros,"matnast.alx",data->window);
//float pnds=iceb_u_atof(bros);
float pnds=iceb_pnds(data->window);

if(iceb_u_rsdat(&ds,&ms,&gs,data->rk->datas.ravno(),1) != 0)
 {
  iceb_menu_soob(gettext("Не правильно введена дата !"),data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

//Проверяем код склада

sprintf(strsql,"select naik from Sklad where kod=%s",data->rk->sklad.ravno());
if(iceb_sql_readkey(strsql,data->window) != 1)
 {
  sprintf(strsql,"%s %s !",gettext("Не найден код склада"),data->rk->sklad.ravno());
  iceb_menu_soob(strsql,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
  
 }

//Проверяем есть ли этот код операции в расходах
sprintf(strsql,"select kod from Rashod where kod='%s'",data->rk->kodop.ravno());
if(iceb_sql_readkey(strsql,data->window) != 1)
 {
  sprintf(strsql,"%s %s !",gettext("Не найден код операции"),data->rk->kodop.ravno());
  iceb_menu_soob(strsql,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

if(data->rk->nomdok.getdlinna() <= 1)
 {
  iceb_menu_soob(gettext("Не введён номер документа !"),data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

if(data->rk->koliz.ravno_atof() == 0.)
 {
  iceb_menu_soob(gettext("Не введёно количество !"),data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }


//Проверяем номер документа
//Уникальный номер документа для прихода и расхода
sprintf(strsql,"select nomd from Dokummat where \
datd >= '%d-01-01' and datd <= '%d-12-31' and sklad=%s and nomd='%s'",
gs,gs,data->rk->sklad.ravno(),data->rk->nomdok.ravno());
if(iceb_sql_readkey(strsql,data->window) >= 1)
 {
  sprintf(strsql,gettext("С номером %s документ уже есть !"),data->rk->nomdok.ravno());
  iceb_menu_soob(strsql,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }



SQL_str row;

if(zap_s_mudokw(2,ds,ms,gs,data->rk->sklad.ravno_atoi(),
"00",data->rk->nomdok.ravno(),
"",data->rk->kodop.ravno(),0,0,"",0,0,0,1,data->window) != 0)
 {
  iceb_msql_error(&bd,"",strsql,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
 



double  kolndet=0.;
int     kodm;
double  kolih=0;

class iceb_razuz_data m_det;
m_det.kod_izd=data->rk->kod_izdel.ravno_atoi();
if((kolndet=iceb_razuz_kod(&m_det,data->window)) == 0)
 {
  sprintf(strsql,"%s %s !",gettext("Не найдено ни одной детали для изделия"),
  data->rk->kod_izdel.ravno());
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

int kolkar=0;
double cena=0.;
char shetu[32];
memset(shetu,'\0',sizeof(shetu));
char ei[32];
double ndss=pnds;
SQLCURSOR cur;
kolndet=m_det.kod_det_ei.kolih();

for(int sss=0; sss < kolndet; sss++)
 {
  if(m_det.metka_mu.ravno(sss) == 1)
   continue;

  memset(ei,'\0',sizeof(ei));
   
  iceb_u_polen(m_det.kod_det_ei.ravno(sss),&kodm,1,'|');
  iceb_u_polen(m_det.kod_det_ei.ravno(sss),ei,sizeof(ei),2,'|');
  kolih=m_det.kolih_det_ei.ravno(sss)*data->rk->koliz.ravno_atof();;

  cena=0.;
  //Читаем цену
  sprintf(strsql,"select cenapr from Material where kodm=%d",kodm);
  if(sql_readkey(&bd,strsql,&row,&cur) == 1)
    cena=atof(row[0]);



  iceb_u_int nomkars;
  iceb_u_double kolpriv;
    
  if((kolkar=findkarw(ds,ms,gs,data->rk->sklad.ravno_atoi(),kodm,kolih,&nomkars,&kolpriv,0,cena,shetu,data->window)) <= 0)
    zapvdokw(ds,ms,gs,data->rk->sklad.ravno_atoi(),0,kodm,data->rk->nomdok.ravno(),kolih,cena,ei,ndss,0,0,2,0,"","",data->window);
  else
   {
    double kolihpi=0.;
    for(int sht=0; sht < kolkar; sht++)
     {
      int nomkar=nomkars.ravno(sht);
      double kolihp=kolpriv.ravno(sht);
      kolihpi+=kolihp;
      zapvdokw(ds,ms,gs,data->rk->sklad.ravno_atoi(),nomkar,kodm,data->rk->nomdok.ravno(),kolihp,cena,ei,ndss,0,0,2,0,"","",data->window);
     }
    if(fabs(kolih-kolihpi) > 0.000001)
      zapvdokw(ds,ms,gs,data->rk->sklad.ravno_atoi(),0,kodm,data->rk->nomdok.ravno(),kolih-kolihpi,cena,ei,ndss,0,0,2,0,"","",data->window);
   }


 }

podtdok1w(ds,ms,gs,data->rk->sklad.ravno_atoi(),data->rk->nomdok.ravno(),2,ds,ms,gs,1,data->window);
podvdokw(ds,ms,gs,data->rk->nomdok.ravno(),data->rk->sklad.ravno_atoi(),data->window);






gtk_label_set_text(GTK_LABEL(data->label),gettext("Расчет закончен"));

data->kon_ras=0;
gtk_widget_set_sensitive(GTK_WIDGET(data->knopka),TRUE);//доступна
gtk_widget_grab_focus(data->knopka);
gtk_widget_show_all(data->window);

iceb_printw_vr(vremn,data->buffer,data->view);

data->voz=0;

return(FALSE);

}
示例#12
0
gint xdkudgod_r1(class xdkudgod_r_data *data)
{
time_t vremn;
time(&vremn);
char strsql[1024];
iceb_u_str repl;
iceb_clock sss(data->window);


int		metkazap=0;

SQLCURSOR cur;
SQL_str row;

strcpy(strsql,"select VERSION()");

iceb_sql_readkey(strsql,&row,&cur,data->window);

if(iceb_u_SRAV(row[0],"3.22",1) == 0)
  metkazap=1;  

sprintf(strsql,"VERSION:%s\n",row[0]);
iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

int kolstr=10;

sprintf(strsql,"%s\n",gettext("Удаление платёжных поручений"));
iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
sprintf(strsql,"delete from Pltp where datd >= '%d-01-01' and \
datd <= '%d-12-31'",data->god,data->god);

iceb_sql_zapis(strsql,0,0,data->window);

float kolstr1=0.;
iceb_pbar(data->bar,kolstr,++kolstr1);    


sprintf(strsql,"%s\n",gettext("Оптимизируем таблицу"));
iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
sprintf(strsql,"optimize table Pltp");

if(metkazap == 1)
  iceb_sql_zapis(strsql,0,0,data->window);
else
  iceb_sql_readkey(strsql,data->window);

iceb_pbar(data->bar,kolstr,++kolstr1);    


sprintf(strsql,"%s\n",gettext("Удаление комментариев к платёжным поручениям"));
iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
sprintf(strsql,"delete from Pltpz where datd >= '%d-01-01' and \
datd <= '%d-12-31'",data->god,data->god);

iceb_sql_zapis(strsql,0,0,data->window);

iceb_pbar(data->bar,kolstr,++kolstr1);    


sprintf(strsql,"%s\n",gettext("Оптимизируем таблицу"));
iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
sprintf(strsql,"optimize table Pltpz");

if(metkazap == 1)
  iceb_sql_zapis(strsql,0,0,data->window);
else
  iceb_sql_readkey(strsql,data->window);

iceb_pbar(data->bar,kolstr,++kolstr1);    

sprintf(strsql,"%s\n",gettext("Удаление платёжных требований"));
iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
sprintf(strsql,"delete from Pltt where datd >= '%d-01-01' and \
datd <= '%d-12-31'",data->god,data->god);

iceb_sql_zapis(strsql,0,0,data->window);

iceb_pbar(data->bar,kolstr,++kolstr1);    

sprintf(strsql,"%s\n",gettext("Оптимизируем таблицу"));
iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
sprintf(strsql,"optimize table Pltt");

if(metkazap == 1)
  iceb_sql_zapis(strsql,0,0,data->window);
else
  iceb_sql_readkey(strsql,data->window);

iceb_pbar(data->bar,kolstr,++kolstr1);    

sprintf(strsql,"%s\n",gettext("Удаление комментариев к платёжным требованиям"));
iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
sprintf(strsql,"delete from Plttz where datd >= '%d-01-01' and \
datd <= '%d-12-31'",data->god,data->god);

iceb_sql_zapis(strsql,0,0,data->window);

iceb_pbar(data->bar,kolstr,++kolstr1);    

sprintf(strsql,"%s\n",gettext("Оптимизируем таблицу"));
iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
sprintf(strsql,"optimize table Plttz");

if(metkazap == 1)
  iceb_sql_zapis(strsql,0,0,data->window);
else
  iceb_sql_readkey(strsql,data->window);

iceb_pbar(data->bar,kolstr,++kolstr1);    

sprintf(strsql,"%s\n",gettext("Удаление объявок"));
iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
sprintf(strsql,"delete from Obqvka where datd >= '%d-01-01' and \
datd <= '%d-12-31'",data->god,data->god);

iceb_sql_zapis(strsql,0,0,data->window);

iceb_pbar(data->bar,kolstr,++kolstr1);    

sprintf(strsql,"%s\n",gettext("Оптимизируем таблицу"));
iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

memset(strsql,'\0',sizeof(strsql));
sprintf(strsql,"optimize table Obqvka");

if(metkazap == 1)
 iceb_sql_zapis(strsql,0,0,data->window);
else
  iceb_sql_readkey(strsql,data->window);


iceb_pbar(data->bar,kolstr,++kolstr1);    


gtk_label_set_text(GTK_LABEL(data->label),gettext("Расчет закончен"));

data->kon_ras=0;
gtk_widget_set_sensitive(GTK_WIDGET(data->knopka),TRUE);//доступна
gtk_widget_grab_focus(data->knopka);
gtk_widget_show_all(data->window);

iceb_printw_vr(vremn,data->buffer,data->view);

data->voz=0;
return(FALSE);

}
示例#13
0
void admin_icebuser_create_list (class admin_icebuser_data *data)
{
class iceb_gdite_data gdite;
iceb_gdite(&gdite,0,data->window);
iceb_clock sss(data->window);
GtkListStore *model=NULL;
GtkTreeIter iter;
SQLCURSOR cur;
char strsql[512];
int  kolstr=0;
SQL_str row;
//GdkColor color;

data->kl_shift=0; //0-отжата 1-нажата  


if(data->treeview != NULL)
  gtk_widget_destroy(data->treeview);

data->treeview = gtk_tree_view_new();


gtk_container_add (GTK_CONTAINER (data->sw), data->treeview);

g_signal_connect(data->treeview,"row_activated",G_CALLBACK(admin_icebuser_v_row),data);

GtkTreeSelection *selection=gtk_tree_view_get_selection(GTK_TREE_VIEW(data->treeview));
gtk_tree_selection_set_mode(selection,GTK_SELECTION_SINGLE);
g_signal_connect(selection,"changed",G_CALLBACK(admin_icebuser_vibor),data);

gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (data->treeview), TRUE); //Устанавливаются полоски при отображении списка
gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (data->treeview)),GTK_SELECTION_SINGLE);




model = gtk_list_store_new (NUM_COLUMNS+1, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_INT);


sprintf(strsql,"select * from icebuser order by login asc");

if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
 {
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
  return;
 }
//gtk_list_store_clear(model);

iceb_u_str ss[NUM_COLUMNS];

data->kolzap=0;
float kolstr1=0. ;
while(cur.read_cursor(&row) != 0)
 {
//  printf("%s %s %s %s\n",row[0],row[1],row[2],row[3]);
  iceb_pbar(gdite.bar,kolstr,++kolstr1);
  


  if(iceb_u_SRAV(data->logtv.ravno(),row[0],0) == 0)
    data->snanomer=data->kolzap;

  //Логин
  ss[COL_LOG].new_plus(iceb_u_toutf(row[0]));
  
  //Фамилия
  ss[COL_FIO].new_plus(iceb_u_toutf(row[1]));

  /*Уникальный номер оператора*/
  ss[COL_UN].new_plus(row[2]);
  /*КОМЕНТАРИЙ*/
  ss[COL_KOMENT].new_plus(iceb_u_toutf(row[3]));
  
  /*Гланая книга*/
  if(atoi(row[6]) == 0)  
   ss[COL_GK].new_plus("Y-");
  else
   ss[COL_GK].new_plus("N-");

  if(atoi(row[7]) == 0)  
   ss[COL_GK].plus("Y-");
  else
   ss[COL_GK].plus("N-");

  if(atoi(row[8]) == 0)  
   ss[COL_GK].plus("Y");
  else
   ss[COL_GK].plus("N");

  /*Материальный учёт*/
  if(atoi(row[9]) == 0)  
   ss[COL_MU].new_plus("Y-");
  else
   ss[COL_MU].new_plus("N-");

  if(atoi(row[10]) == 0)  
   ss[COL_MU].plus("Y-");
  else
   ss[COL_MU].plus("N-");

  if(atoi(row[11]) == 0)  
   ss[COL_MU].plus("Y");
  else
   ss[COL_MU].plus("N");

  /*Платёжные документы*/
  if(atoi(row[12]) == 0)  
   ss[COL_PD].new_plus("Y-");
  else
   ss[COL_PD].new_plus("N-");

  if(atoi(row[13]) == 0)  
   ss[COL_PD].plus("Y-");
  else
   ss[COL_PD].plus("N-");

  if(atoi(row[14]) == 0)  
   ss[COL_PD].plus("Y");
  else
   ss[COL_PD].plus("N");

  /*Заработная плата*/
  if(atoi(row[15]) == 0)  
   ss[COL_ZP].new_plus("Y-");
  else
   ss[COL_ZP].new_plus("N-");

  if(atoi(row[16]) == 0)  
   ss[COL_ZP].plus("Y-");
  else
   ss[COL_ZP].plus("N-");

  if(atoi(row[17]) == 0)  
   ss[COL_ZP].plus("Y");
  else
   ss[COL_ZP].plus("N");

  /*Учёт основных средств*/
  if(atoi(row[18]) == 0)  
   ss[COL_UOS].new_plus("Y-");
  else
   ss[COL_UOS].new_plus("N-");

  if(atoi(row[19]) == 0)  
   ss[COL_UOS].plus("Y-");
  else
   ss[COL_UOS].plus("N-");

  if(atoi(row[20]) == 0)  
   ss[COL_UOS].plus("Y");
  else
   ss[COL_UOS].plus("N");

  /*Учёт услуг*/
  if(atoi(row[21]) == 0)  
   ss[COL_UU].new_plus("Y-");
  else
   ss[COL_UU].new_plus("N-");

  if(atoi(row[22]) == 0)  
   ss[COL_UU].plus("Y-");
  else
   ss[COL_UU].plus("N-");

  if(atoi(row[23]) == 0)  
   ss[COL_UU].plus("Y");
  else
   ss[COL_UU].plus("N");

  /*Учёт кассовых ордеров*/
  if(atoi(row[24]) == 0)  
   ss[COL_UKO].new_plus("Y-");
  else
   ss[COL_UKO].new_plus("N-");

  if(atoi(row[25]) == 0)  
   ss[COL_UKO].plus("Y-");
  else
   ss[COL_UKO].plus("N-");

  if(atoi(row[26]) == 0)  
   ss[COL_UKO].plus("Y");
  else
   ss[COL_UKO].plus("N");

  /*Учёт командировочных расходов*/
  if(atoi(row[27]) == 0)  
   ss[COL_UKR].new_plus("Y-");
  else
   ss[COL_UKR].new_plus("N-");

  if(atoi(row[28]) == 0)  
   ss[COL_UKR].plus("Y-");
  else
   ss[COL_UKR].plus("N-");

  if(atoi(row[29]) == 0)  
   ss[COL_UKR].plus("Y");
  else
   ss[COL_UKR].plus("N");

  /*Учёт путевых листов*/
  if(atoi(row[30]) == 0)  
   ss[COL_UPL].new_plus("Y-");
  else
   ss[COL_UPL].new_plus("N-");

  if(atoi(row[31]) == 0)  
   ss[COL_UPL].plus("Y-");
  else
   ss[COL_UPL].plus("N-");

  if(atoi(row[32]) == 0)  
   ss[COL_UPL].plus("Y");
  else
   ss[COL_UPL].plus("N");

  /*Реестр счет-фактур*/
  if(atoi(row[33]) == 0)  
   ss[COL_RNN].new_plus("Y-");
  else
   ss[COL_RNN].new_plus("N-");

  if(atoi(row[34]) == 0)  
   ss[COL_RNN].plus("Y-");
  else
   ss[COL_RNN].plus("N-");

  if(atoi(row[35]) == 0)  
   ss[COL_RNN].plus("Y");
  else
   ss[COL_RNN].plus("N");

  /*Учёт доверенностей*/
  if(atoi(row[36]) == 0)  
   ss[COL_UD].new_plus("Y-");
  else
   ss[COL_UD].new_plus("N-");

  if(atoi(row[37]) == 0)  
   ss[COL_UD].plus("Y-");
  else
   ss[COL_UD].plus("N-");

  if(atoi(row[38]) == 0)  
   ss[COL_UD].plus("Y");
  else
   ss[COL_UD].plus("N");

  //Дата и время записи
  ss[COL_DATA_VREM].new_plus(iceb_u_toutf(iceb_u_vremzap(row[5])));

  //Кто записал
  ss[COL_KTO].new_plus(iceb_u_kszap(row[4],0));

  
  gtk_list_store_append (model, &iter);

  gtk_list_store_set (model, &iter,
  COL_LOG,ss[COL_LOG].ravno(),
  COL_UN,ss[COL_UN].ravno(),
  COL_FIO,ss[COL_FIO].ravno(),
  COL_KOMENT,ss[COL_KOMENT].ravno(),
  COL_GK,ss[COL_GK].ravno(),
  COL_MU,ss[COL_MU].ravno(),
  COL_PD,ss[COL_PD].ravno(),
  COL_ZP,ss[COL_ZP].ravno(),
  COL_UOS,ss[COL_UOS].ravno(),
  COL_UU,ss[COL_UU].ravno(),
  COL_UKO,ss[COL_UKO].ravno(),
  COL_UKR,ss[COL_UKR].ravno(),
  COL_UPL,ss[COL_UPL].ravno(),
  COL_RNN,ss[COL_RNN].ravno(),
  COL_UD,ss[COL_UD].ravno(),
  COL_DATA_VREM,ss[COL_DATA_VREM].ravno(),
  COL_KTO,ss[COL_KTO].ravno(),
  NUM_COLUMNS,data->kolzap,
  -1);

  data->kolzap++;
 }
data->logtv.new_plus("");

gtk_tree_view_set_model (GTK_TREE_VIEW(data-> treeview),GTK_TREE_MODEL (model));

g_object_unref (GTK_TREE_MODEL (model));

admin_icebuser_add_columns (GTK_TREE_VIEW (data->treeview));


if(data->kolzap == 0)
 {
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK3]),FALSE);//Недоступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK5]),FALSE);//Недоступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK6]),FALSE);//Недоступна
 }
else
 {
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK3]),TRUE);//Доступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK5]),TRUE);//Доступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK6]),TRUE);//Доступна
 }

gtk_widget_show (data->treeview);
gtk_widget_show (data->sw);

//Стать подсветкой стороки на нужный номер строки
iceb_snanomer(data->kolzap,&data->snanomer,data->treeview);


iceb_u_str stroka;
iceb_u_str zagolov;
zagolov.plus(gettext("Список операторов"));

sprintf(strsql," %s:%d",gettext("Количество записей"),data->kolzap);
zagolov.plus(strsql);

gtk_label_set_text(GTK_LABEL(data->label_kolstr),zagolov.ravno_toutf());
/*******************************
if(data->metka_poi == 1)
 {
  
  zagolov.new_plus(gettext("Поиск"));
  zagolov.plus(" !!!");

  iceb_str_poisk(&zagolov,data->poisk.kod.ravno(),gettext("Код"));
  iceb_str_poisk(&zagolov,data->poisk.naim.ravno(),gettext("Наименование"));
  

  gtk_label_set_text(GTK_LABEL(data->label_poisk),zagolov.ravno_toutf());
  gtk_widget_show(data->label_poisk);
 }
else
******************************/
 gtk_widget_hide(data->label_poisk); 

gtk_widget_show(data->label_kolstr);

}
示例#14
0
文件: Addr.cpp 项目: steady286/BitMRC
bool PubAddr::decodeFromObj(packet_pubkey pubkey)
{
	ustring data;
	try
	{
		data = this->decode(pubkey.encrypted, this->getTagE());
	}
	catch (...)
	{
		return false;
	}
	unsigned int p = 0;
	int bitfield = data.getInt32(p);
	ustring signingKey;
	signingKey += 0x04;
	signingKey += data.getUstring(64, p);
	ustring encryptionKey;
	encryptionKey += 0x04;
	encryptionKey += data.getUstring(64, p);
	int nonce_trials = (int)data.getVarInt_B(p);
	int extra_bytes = (int)data.getVarInt_B(p);
	int k = p;
	int sig_len = (int)data.getVarInt_B(p);
	ustring sign = data.getUstring(sig_len, p);


	//checking signature

	OID CURVE = secp256k1();
	AutoSeededRandomPool prng;

	ECPPoint point;
	unsigned int i = 1;
	string xA = signingKey.getString(32, i);
	string yA = signingKey.getString(32, i);

	point.identity = false;
	point.x.Decode((byte*)xA.c_str(), 32);
	point.y.Decode((byte*)yA.c_str(), 32);

	ECDSA<ECP, SHA1>::PublicKey publicKey;
	publicKey.Initialize(CURVE, point);

	bool res = publicKey.Validate(prng, 3);

	ECDSA<ECP, SHA1>::Verifier verifier(publicKey);

	// Result of the verification process
	bool result = false;

	ustring mess1;
	unsigned int j = 8;
	mess1.appendInt64(pubkey.message_payload.getInt64(j));
	mess1.appendInt32(pubkey.message_payload.getInt32(j));
	mess1.appendVarInt_B(pubkey.message_payload.getVarInt_B(j));
	mess1.appendVarInt_B(pubkey.message_payload.getVarInt_B(j));
	mess1 += this->getTag();
	string mess;

	mess += mess1.toString();
	j = 0;
	mess += data.getString(k, j);

	string tmp_sign = sign.toString();

	//BER decoding
	Integer r, s;
	StringStore store(tmp_sign);
	BERSequenceDecoder seq(store);
	r.BERDecode(seq);
	s.BERDecode(seq);
	seq.MessageEnd();
	string signature;
	StringSink sink(signature);
	r.Encode(sink, 32);
	s.Encode(sink, 32);
	//end conversion

	StringSource sss(signature + mess, true,
		new SignatureVerificationFilter(
			verifier,
			new ArraySink((byte*)&result, sizeof(result))
			) // SignatureVerificationFilter
		);

	if (result)
	{

		this->loadKeys(signingKey, encryptionKey, nonce_trials, extra_bytes);

		return true;
	}
	return false;
}
示例#15
0
gint imp_kr_r1(class imp_kr_r_data *data)
{
time_t vremn;
time(&vremn);
char strsql[512];
iceb_clock sss(data->window);


short dn,mn,gn;
short dk,mk,gk;

if(iceb_rsdatp(&dn,&mn,&gn,data->rk->datan.ravno(),&dk,&mk,&gk,data->rk->datak.ravno(),data->window) != 0)
 {
  
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);

 }

char prist_k_tn[32];

if(iceb_poldan("Приставка к табельному номеру",prist_k_tn,"zarnast.alx",data->window) != 0)
 {
  iceb_menu_soob(gettext("Не найдена \"Приставка к табельному номеру\" !"),data->window);
  
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
int dlina_prist=strlen(prist_k_tn);


SQL_str row,row1;
SQLCURSOR cur,cur1;
int kolstr=0;

sprintf(strsql,"select nomd,datd,kont from Ukrdok where \
datao >= '%04d-%02d-%02d' and datao <= '%04d-%02d-%02d'",
gn,mn,dn,gk,mk,dk);


if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
 {
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

if(kolstr == 0)
 {
  iceb_menu_soob(gettext("Не найдено ни одной записи !"),data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
//Смотрим есть ли счёт в начислении
char shet_nah[20];
memset(shet_nah,'\0',sizeof(shet_nah));

sprintf(strsql,"select shet from Nash where kod=%d",data->rk->kod_nah_ud);
if(iceb_sql_readkey(strsql,&row1,&cur1,data->window) == 1)
 strncpy(shet_nah,row1[0],sizeof(shet_nah)); 

char tabnom[20];
short dnr,mnr,gnr;
short dkr,mkr,gkr;
char shetkar[30];
int podrkar;
int kateg;
int sovm;
int zvan;
char lgot[50];
char dolg[512];
class ZARP     zp;



int nz=0;
int vernuli;
double suma=0;

char shet[32];

strncpy(shet,shet_nah,sizeof(shet)-1);
int tabn;
int kolstr2=0;
float kolstr1=0.;

while(cur.read_cursor(&row) != 0)
 {
//  printw("%s %s %s\n",row[0],row[1],row[2]);

  iceb_pbar(data->bar,kolstr,++kolstr1);    
    
  if(iceb_u_strstrm(row[2],prist_k_tn) != 1)
   continue;
   
  memset(tabnom,'\0',sizeof(tabnom));
  strncpy(tabnom,&row[2][dlina_prist],sizeof(tabnom));
  tabn=atol(tabnom);
  
  sprintf(strsql,"tabnom=%s\n",tabnom);
  iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
  
  //Проверяем есть ли такой табельный номер  
  sprintf(strsql,"select datn,datk,shet,podr,kodg,kateg,\
sovm,zvan,lgoti,dolg from Kartb where tabn=%d",tabn);
  if(iceb_sql_readkey(strsql,&row1,&cur1,data->window) != 1)
   {
    sprintf(strsql,"%s %d !\n",gettext("Не найден табельный номер"),tabn);
    iceb_menu_soob(strsql,data->window);
    continue;
   }

  iceb_u_rsdat(&dnr,&mnr,&gnr,row1[0],2);
  iceb_u_rsdat(&dkr,&mkr,&gkr,row1[1],2);
  strncpy(shetkar,row1[2],sizeof(shetkar)-1);

  podrkar=atoi(row1[3]);
  kateg=atoi(row1[5]);
  sovm=atoi(row1[6]);
  zvan=atoi(row1[7]);
  memset(lgot,'\0',sizeof(lgot));
  strncpy(lgot,row1[8],sizeof(lgot)-1);
  memset(dolg,'\0',sizeof(dolg));
  strncpy(dolg,row1[9],sizeof(dolg)-1);

  if(shet_nah[0] == '\0')
   strncpy(shet,shetkar,sizeof(shet)-1);
   

  sprintf(strsql,"select kodr,cena from Ukrdok1 where \
datd='%s' and nomd='%s'",row[1],row[0]);
//  printw("strsql=%s\n",strsql);
  if((kolstr2=cur1.make_cursor(&bd,strsql)) < 0)
   {
    iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
    continue;
   }
  if(kolstr2 == 0)
   continue;

  while(cur1.read_cursor(&row1) != 0)
   {

    if(iceb_u_proverka(data->rk->kod_zat.ravno(),row1[0],0,0) != 0)
     continue;
//    printw("%s %s\n",row1[0],row1[1]);
    suma=atof(row1[1]);
    if(data->rk->prn == 2)
     suma*=-1;    
    nz=0;

    zp.tabnom=tabn;
    zp.prn=data->rk->prn;
    zp.knu=data->rk->kod_nah_ud;
    zp.dz=0;   //Если день равен нулю, то удаление старой записи перед вставкой новой не происходит
    zp.mz=data->rk->mz;
    zp.gz=data->rk->gz;
    zp.mesn=data->rk->mz; zp.godn=data->rk->gz;
    zp.nomz=0;
    zp.podr=podrkar;
    strcpy(zp.shet,shet);

povtor:;

    if((vernuli=zapzarpw(&zp,suma,data->rk->denz.ravno_atoi(),data->rk->mz,data->rk->gz,0,shet,"",nz++,podrkar,"",data->window)) == 1)
      goto povtor;

    if(vernuli != 0)
     continue;
     
    zapzarn1w(tabn,data->rk->prn,data->rk->kod_nah_ud,0,0,0,shet,data->window);

    zarsocw(data->rk->mz,data->rk->gz,tabn,NULL,data->window);
    zaravprw(tabn,data->rk->mz,data->rk->gz,NULL,data->window);

    //Проверяем есть ли запись карточки по этой дате и если нет делаем запись
    sprintf(strsql,"select god from Zarn where tabn=%d and god=%d and mes=%d",tabn,data->rk->gz,data->rk->mz);
    if(iceb_sql_readkey(strsql,data->window) == 0)  
      zapzarnw(data->rk->mz,data->rk->gz,podrkar,tabn,kateg,sovm,zvan,shetkar,lgot,dnr,mnr,gnr,dkr,mkr,gkr,0,dolg,data->window);
    
   }

 }




data->kon_ras=0;

gtk_label_set_text(GTK_LABEL(data->label),gettext("Расчет закончен"));

gtk_widget_set_sensitive(GTK_WIDGET(data->knopka),TRUE);//доступна
gtk_widget_grab_focus(data->knopka);
gtk_widget_show_all(data->window);

iceb_printw_vr(vremn,data->buffer,data->view);



//repl.new_plus(gettext("Загрузка завершена"));
//repl.ps_plus(gettext("Количество документов"));
//repl.plus(":");
//repl.plus(koldok);

//iceb_menu_soob(&repl,data->window);


data->voz=0;

return(FALSE);
}
示例#16
0
void runProgram(Graphics & g) {
	Input input;
	View v;
	// Not this yet
	Grid grid;
	Timer t;
	ImageHandler im (SPRITE_SHEET, 0);
	Background bg;
	im.parseStrip(0, 0, 70, 70, 6, 1, 0, 0);

	// Test sss thing handler - 20 capacity
	SSS_ThingHandler sss(20);
	// Friction
	float friction = .3;
	// Player and Rectangle Speed based on FPS
	const float PS = 9 * 16 / FPS;
	const float RS = 5 * 16 / FPS;
	// used for wall speed;
	float recSpeed = RS;

	// We will create a bunch of testing rectangles, rect is the player.
	//Rectangle rect(10, 10, 16, 16);
	Living rect;
	rect.setImageHandler(&im);
	rect.setXYWH(10.0f, 10.0f, 16.0f, 16.0f);
	rect.setSubImage(2);
	rect.setMaxHP(100);
	rect.heal();

	Rectangle push(200, 200, 64, 64);

	GLuint rectIndex = sss.addThing();

	//Image rectImg(&im, 2);
	//rectImg.dataMode(&sss, rectIndex);
	rect.dataMode(&sss, rectIndex);
	push.dataMode(&sss, sss.addThing());

	rect.setIX(-70 / 2 + 16 / 2);
	rect.setIY(-70 / 2 + 16 / 2);

	printf("X: %f, Y: %f, W: %f, H: %f\n",
		sss.getOFFX(rectIndex), sss.getOFFY(rectIndex), sss.getIW(rectIndex), sss.getIH(rectIndex));

	// These are all the wall rectangles (the hollow ones).
	unsigned rectSize = 9;
	Rectangle rectangles[] = {
		Rectangle(),
		Rectangle(),
		Rectangle(),
		Rectangle(),
		Rectangle(),
		Rectangle(),
		Rectangle(),
		Rectangle(),
		Rectangle()
	};

	// Set rectangles to datamode
	for (unsigned i = 0; i < rectSize; ++i) {
		rectangles[i].setXYWH(-50, i * 90, 70, 70),
		rectangles[i].dataMode(&sss, sss.addThing());
	}
	// Keep the mouse within the window.
	input.mouseCapture();

	// Loop forever.
	bool loopFlag = false;
	while(!loopFlag) {
		t.reset();
		input.update();
		loopFlag = input.isQuit();

		// Sync the grid with the mouse location.
		grid.update(input);

		// ASDW Keys
		if (input.down(input.KEY_A)) {
			rect.setHS(-PS);
			rect.setSubImage(5);
		} else if (input.down(input.KEY_D)) {
			rect.setHS(PS);
			rect.setSubImage(4);
		} else {
			rect.setHS(rect.getHS() * friction);
			rect.setSubImage(3);
		}

		if (input.down(input.KEY_W)) {
			rect.setVS(PS);
		} else if (input.down(input.KEY_S)) {
			rect.setVS(-PS);
		} else {
			rect.setVS(rect.getVS() * friction);
		}
	
		if (input.down(input.KEY_A) && input.down(input.KEY_D) &&
			input.down(input.KEY_W) && input.down(input.KEY_S)) {
			rect.setHS(0.0f);
			rect.setVS(0.0f);
		} else if (input.down(input.KEY_A) && input.down(input.KEY_D)) {
			rect.setHS(0.0f);
		} else if (input.down(input.KEY_W) && input.down(input.KEY_S)) {
			rect.setVS(0.0f);
		} else if (input.down(input.KEY_W) && input.down(input.KEY_A)) {
			rect.setDegSpeed(135.0f, PS);
		} else if (input.down(input.KEY_W) && input.down(input.KEY_D)) {
			rect.setDegSpeed(45.0f, PS);
		} else if (input.down(input.KEY_D) && input.down(input.KEY_S)) {
			rect.setDegSpeed(-45.0f, PS);
		} else if (input.down(input.KEY_A) && input.down(input.KEY_S)) {
			rect.setDegSpeed(-135.0f, PS);
		}

		// ESC Key
		if (input.pressed(input.KEY_ESC)) {
			input.isMouseCaptured() ? input.mouseFree() : input.mouseCapture();
			recSpeed *= -1;
		}

		// SPACE Key
		if (input.down(input.KEY_SPA)) {
			for (unsigned i = 0; i < rectSize; ++i) {
				rectangles[i].setHS(recSpeed);
				rectangles[i].setVS(recSpeed);
			}
		} else {
			for (unsigned i = 0; i < rectSize; ++i) {
				rectangles[i].setHS(rectangles[i].getHS() * friction);
				rectangles[i].setVS(rectangles[i].getVS() * friction);
			}
		}

		// Collision player with walls.
		for (unsigned i = 0; i < rectSize; ++i)
		{
			if ( rect.willIntersect(rectangles[i])) {
				short curPos = rect.nextRelativePosition(rectangles[i]);

				if (curPos == rect.LEFT) {
					rect.setHS(rectangles[i].getX() + rectangles[i].getHS() - rect.getX() - rect.getW());
				} else if (curPos == rect.RIGHT) {
					rect.setHS(rectangles[i].getX() + rectangles[i].getHS() + rectangles[i].getW() - rect.getX());
				} else if (curPos == rect.DOWN) {
					rect.setVS(rectangles[i].getY() + rectangles[i].getVS() - rect.getY() - rect.getH());
				} else if (curPos == rect.UP) {
					rect.setVS(rectangles[i].getY() + rectangles[i].getVS() + rectangles[i].getH() - rect.getY());
				} else {
					// nextRelativePosition wont return anything else.
					assert(false);
				}
			}
		}

		// Collision player with push
		if (push.isIntersecting(rect)) {
			rect.hurt(1);
			push.addHS(rect.getHS() * (32*4 / FPS));
			push.addVS(rect.getVS() * (32*4 / FPS));
		}

		push.addHS(-push.getHS() * friction);
		push.addVS(-push.getVS() * friction);

		// Move EVERYTHING hehe
		sss.updatePositions();

		// Center View
		v.center(rect, true);
		glEnable( GL_BLEND );
		glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
		glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
		glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

		bg.drawBackground(&v);
		g.beginFrameBuffer();

		//glEnable(GL_DEPTH_TEST);
		glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
		glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

		sss.drawThings(v.getViewMatrix(), 0, im.getSheetWidth(), im.getSheetHeight());
		g.endFrameBuffer();

		// Draw the grid. And mouse.
		grid.draw();

		// This is what puts those above drawings into action.
		g.update();

		// Timer stuff! The sleep method sleeps the thread. We want to
		// sleep in order for us to have exactly the frame rate if this
		// is 30 frames per second, then 1 second / 30 is how much time
		// each frame should take. Subtract that by the amount of time
		// this loop took and you know how much time to sleep. Pausing
		// your program can help out your cpu, but remember that the
		// lower framerates can be choppy, and the higher ones may be
		// too hard for your computer to handle.
		if (t.getTicks() < 1000 / FPS)
			g.sleep(1000 / FPS - t.getTicks());
	}
}
示例#17
0
gint zar_krz_r1(class zar_krz_r_data *data)
{
    time_t vremn;
    time(&vremn);
    char strsql[1024];
    iceb_u_str repl;
    iceb_clock sss(data->window);
    SQL_str row,row1;
    SQLCURSOR cur,cur1;


//читаем текущие настройки
    zar_read_tnw(1,data->mr,data->gr,NULL,data->window);

    int kolstr=0;

    sprintf(strsql,"select tabn,fio,datk,sovm,datn,podr,kateg,shet,zvan,\
lgoti,datn,dolg from Kartb");
    if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
    {
        iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
        sss.clear_data();
        gtk_widget_destroy(data->window);
        return(FALSE);
    }

    if(kolstr == 0)
    {
        iceb_menu_soob(gettext("Не найдено ни одной записи !"),data->window);

        sss.clear_data();
        gtk_widget_destroy(data->window);
        return(FALSE);
    }

    char imaf[30];
    char imaf1[30];

    sprintf(imaf,"nnz%d.lst",getpid());
    sprintf(imaf1,"szr%d.lst",getpid());
    FILE *ff;

    if((ff = fopen(imaf,"w")) == NULL)
    {
        iceb_er_op_fil(imaf,"",errno,NULL);
        sss.clear_data();
        gtk_widget_destroy(data->window);
        return(FALSE);
    }
    FILE *f;

    if((f = fopen(imaf1,"w")) == NULL)
    {
        iceb_er_op_fil(imaf1,"",errno,NULL);
        sss.clear_data();
        gtk_widget_destroy(data->window);
        return(FALSE);
    }

    char		knvp[100];
    memset(knvp,'\0',sizeof(knvp));
    short dn=0,mn=0,gn=0;
    short dk=0,mk=0,gk=0;
    iceb_u_dpm(&dk,&data->mr,&data->gr,5);
    iceb_u_zagolov(gettext("Зароботная плата"),1,data->mr,data->gr,dk,data->mr,data->gr,organ,f);


    fprintf(f,"\
------------------------------------------------------------------------------------------\n");
    fprintf(f,gettext("Т.Н.|    Фамилия  Имя Отчество               | Сальдо   |Начислено |  Удержано |К выдаче\n"));

    fprintf(f,"\
------------------------------------------------------------------------------------------\n");

    iceb_u_zagolov(gettext("Контроль расчёта зарплаты"),1,data->mr,data->gr,dk,data->mr,data->gr,organ,ff);


    SQLCURSOR curr;
    int kol=0;
    float kolstr1=0.;
    double itdl=0.,itsl=0.,itsn=0.,itsu=0.;
    int sovm=0;
    int tabb=0;
    char fio[512];
    double sal=0.;
    double sum=0.;
    double sumn=0.;
    double sumu=0.;
    double saldb=0.;
    char            pr[30]; /*Дата приема и увольнения с работы*/
    int podr=0;
    int kateg=0;
    short		zvan;
    char		lgoti[50];
    char shet[32];
    short d,m,g;
    double		nahh[5];
    double nah=0.;
    double		s1,s2;
    double          suma_zarp_o; //Сумма чистой зарплаты общая
    double          suma_zarp_b; //Сумма чистой зарплаты бюджетная
    double   nmpo=0.; /*Вычисленная величина необлагаемой мат. пом.*/
    double suma_boln_rm=0.;
    int kolkd1=0;
    while(cur.read_cursor(&row) != 0)
    {
        iceb_pbar(data->bar,kolstr,++kolstr1);

        tabb=atoi(row[0]);
        memset(fio,'\0',sizeof(fio));
        strncpy(fio,row[1],sizeof(fio)-1);


        memset(pr,'\0',sizeof(pr));
        sprintf(pr,"%s/%s",row[4],row[2]);

        sovm=atoi(row[3]);
        podr=atoi(row[5]);
        kateg=atoi(row[6]);
        strncpy(shet,row[7],sizeof(shet));
        zvan=atoi(row[8]);
        strncpy(lgoti,row[9],sizeof(lgoti));

        sum=sumn=sumu=0.;

        /*Читаем сальдо*/
        sal=0.;
        sum=sal=zarsaldw(1,data->mr,data->gr,tabb,&saldb,data->window);

        if(fabs(sal) > 0.009)
        {
            /*Проверяем был ли вход в карточку*/
            sprintf(strsql,"select tabn from Zarn where tabn=%d and god=%d and \
mes=%d",tabb,data->gr,data->mr);
            if(iceb_sql_readkey(strsql,&row1,&cur1,data->window) != 1)
            {
                iceb_u_rsdat(&dn,&mn,&gn,row[10],2);
                iceb_u_rsdat(&dk,&mk,&gk,row[2],2);
                zapzarnw(data->mr,data->gr,podr,tabb,kateg,sovm,zvan,shet,lgoti,dn,mn,gn,dk,mk,gk,0,row[11],data->window);
            }

            if(iceb_u_rsdat(&d,&m,&g,row[2],2) == 0)
            {
                sprintf(strsql,"%d %*.*s %s %d.%d.%d - %s %.2f\n",
                        tabb,iceb_u_kolbait(20,fio),iceb_u_kolbait(20,fio),fio,gettext("Уволен"),d,m,g,
                        gettext("не нулевое сальдо"),sal);

                iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

                fprintf(ff,"%d %s %s %d.%d.%d - %s %.2f\n",
                        tabb,fio,gettext("Уволен"),d,m,g,
                        gettext("не нулевое сальдо"),sal);
                continue;
            }
        }
        else
        {
示例#18
0
/*********************************************************************
 * 矩阵的奇异值分解,参见《c 常用算法程序集》徐世良P169
 * 参数说明:
 * a m*n的实矩阵,返回时其对角线给出奇异值(非递增顺序),其余元素为0
 * m,n 矩阵A的行数和列数
 * u m*m的矩阵,存放左奇异向量
 * v n*n的矩阵,存放右奇异向量
 * eps 双精度实型变量,给定精度要求
 * ka 整形变量,其值为max(m,n)+1
 * 返回值:如果返回标志小于0,则说明出现了迭代MAX_ITERA次还未求得某个
 * 奇异值的情况,此时矩阵A的分解式为UAV,如果返回标志大于0,则说明
 * 程序正常运行
 ********************************************************************/
int dluav(float *a,int m,int n,float eps,int ka)
{
	int i,j,k,l,it,ll,kk,ix,iy,mm,nn,iz,ml,ks;
	float d,dd,t,sm,sml,eml,sk,ek,b,c,shh,fg[2],cs[2];
	float *s,*e,*w;
	float *u,*v;
	s=(float*)malloc(ka*sizeof(float));
	e=(float*)malloc(ka*sizeof(float));
	w=(float*)malloc(ka*sizeof(float));

	u=(float *)malloc(m*m*sizeof(float));
	v=(float *)malloc(n*n*sizeof(float));
	for(i=1;i<=m;i++)
	{
		ix=(i-1)*m+i-1;
		u[ix]=0;
	}
	for(i=1;i<=n;i++)
	{
		iy=(i-1)*n+i-1;
		v[iy]=0;
	}
	it=MAX_ITERA;k=n;
	if(m-1<n)
		k=m-1;
	l=m;
	if(n-2<m) l=n-2;
	if(l<0) l=0;
	ll=k;
	if(l>k) ll=l;
	if(ll>=1)
	{
		for(kk=1;kk<=ll;kk++)
		{
			if(kk<=k)
			{
				d=0.0;
				for(i=kk;i<=m;i++)
				{
					ix=(i-1)*n+kk-1;d=d+a[ix]*a[ix];
				}
				s[kk-1]=sqrt(d);
				//if(s[kk-1]!=0.0)
				if(fabs(s[kk-1])>MIN_DOUBLE)
				{
					ix=(kk-1)*n+kk-1;
					//if(a[ix]!=0.0)
					if(fabs(a[ix])>MIN_DOUBLE)
					{
						s[kk-1]=fabs(s[kk-1]);
						if(a[ix]<0.0) s[kk-1]=-s[kk-1];
					}
					for(i=kk;i<=m;i++)
					{
						iy=(i-1)*n+kk-1;
						a[iy]=a[iy]/s[kk-1];
					}
					a[ix]=1.0+a[ix];
				}
				s[kk-1]=-s[kk-1];
			}
			if(n>=kk+1)
			{
				for(j=kk+1;j<=n;j++)
				{
					//if((kk<=k)&&(s[kk-1]!=0.0))
					if((kk<=k)&&(fabs(s[kk-1])>MIN_DOUBLE))
					{
						d=0.0;
						for(i=kk;i<=m;i++)
						{
							ix=(i-1)*n+kk-1;
							iy=(i-1)*n+j-1;
							d=d+a[ix]*a[iy];
						}
						d=-d/a[(kk-1)*n+kk-1];
						for(i=kk;i<=m;i++)
						{
							ix=(i-1)*n+j-1;
							iy=(i-1)*n+kk-1;
							a[ix]=a[ix]+d*a[iy];
						}
					}
					e[j-1]=a[(kk-1)*n+j-1];
				}
			}
			if(kk<=k)
			{
				for(i=kk;i<=m;i++)
				{
					ix=(i-1)*m+kk-1;iy=(i-1)*n+kk-1;
					u[ix]=a[iy];
				}
			}
			if(kk<=l)
			{
				d=0.0;
				for(i=kk+1;i<=n;i++)
					d=d+e[i-1]*e[i-1];
				e[kk-1]=sqrt(d);
				//if(e[kk-1]!=0.0)
				if(fabs(e[kk-1])>MIN_DOUBLE)
				{
					//if(e[kk]!=0.0)
					if(fabs(e[kk])>MIN_DOUBLE)
					{
						e[kk-1]=fabs(e[kk-1]);
						if(e[kk]<0.0)
							e[kk-1]=-e[kk-1];
					}
					for(i=kk+1;i<=n;i++)
						e[i-1]=e[i-1]/e[kk-1];
					e[kk]=1.0+e[kk];
				}
				e[kk-1]=-e[kk-1];
				//if((kk+1<=m)&&(e[kk-1]!=0.0))
				if((kk+1<=m)&&(fabs(e[kk-1])>MIN_DOUBLE))
				{
					for(i=kk+1;i<=m;i++) w[i-1]=0.0;
					for(j=kk+1;j<=n;j++)
						for(i=kk+1;i<=m;i++)
							w[i-1]=w[i-1]+e[j-1]*a[(i-1)*n+j-1];
					for(j=kk+1;j<=n;j++)
						for(i=kk+1;i<=m;i++)
						{
							ix=(i-1)*n+j-1;
							a[ix]=a[ix]-w[i-1]*e[j-1]/e[kk];
						}
				}
				for(i=kk+1;i<=n;i++)
					v[(i-1)*n+kk-1]=e[i-1];
			}
		}
	}
	mm=n;
	if(m+1<n) mm=m+1;
	if(k<n) s[k]=a[k*n+k];
	if(m<mm) s[mm-1]=0.0;
	if(l+1<mm) e[l]=a[l*n+mm-1];
	e[mm-1]=0.0;
	nn=m;
	if(m>n) nn=n;
	if(nn>=k+1)
	{
		for(j=k+1;j<=nn;j++)
		{
			for(i=1;i<=m;i++)
				u[(i-1)*m+j-1]=0.0;
			u[(j-1)*m+j-1]=1.0;
		}
	}
	if(k>=1)/////////////////////////////////
	{
		for(ll=1;ll<=k;ll++)
		{
			kk=k-ll+1;iz=(kk-1)*m+kk-1;
			//if(s[kk-1]!=0.0)
			if(fabs(s[kk-1])>MIN_DOUBLE)
			{
				if(nn>=kk+1)
					for(j=kk+1;j<=nn;j++)
					{
						d=0.0;
						for(i=kk;i<=m;i++)
						{
							ix=(i-1)*m+kk-1;
							iy=(i-1)*m+j-1;
							d=d+u[ix]*u[iy]/u[iz];
						}
						d=-d;
						for(i=kk;i<=m;i++)
						{
							ix=(i-1)*m+j-1;
							iy=(i-1)*m+kk-1;
							u[ix]=u[ix]+d*u[iy];
						}
					}
					for(i=kk;i<=m;i++)
					{
						ix=(i-1)*m+kk-1;
						u[ix]=-u[ix];
					}
					u[iz]=1.0+u[iz];
					if(kk-1>=1)//////////////////////////////////////
						for(i=1;i<=kk-1;i++)
							u[(i-1)*m+kk-1]=0.0;
			}
			else
			{
				for(i=1;i<=m;i++)
					u[(i-1)*m+kk-1]=0.0;
				u[(kk-1)*m+kk-1]=1.0;
			}
		}
	}
	for(ll=1;ll<=n;ll++)
	{
		kk=n-ll+1;iz=kk*n+kk-1;
		//if((kk<=l)&&(e[kk-1]!=0.0))/////////////////////////////
		if((kk<=l)&&(fabs(e[kk-1])>MIN_DOUBLE))
		{
			for(j=kk+1;j<=n;j++)
			{
				d=0.0;
				for(i=kk+1;i<=n;i++)
				{
				ix=(i-1)*n+kk-1;iy=(i-1)*n+j-1;
				d=d+v[ix]*v[iy]/v[iz];
				}
				d=-d;
				for(i=kk+1;i<=n;i++)
				{
					ix=(i-1)*n+j-1;iy=(i-1)*n+kk-1;
					v[ix]=v[ix]+d*v[iy];
				}
			}
		}
		for(i=1;i<=n;i++)
			v[(i-1)*n+kk-1]=0.0;
		v[iz-n]=1.0;
	}
	for(i=1;i<=m;i++)
		for(j=1;j<=n;j++)
			a[(i-1)*n+j-1]=0.0;
	ml=mm;
	it=MAX_ITERA;
	while(1==1)//////////////////////////////////
	{
		if(mm==0)
		{
			ppp(a,e,s,v,m,n);
			free(s);free(e);free(w);
			return l;
		}
		if(it==0)
		{
			ppp(a,e,s,v,m,n);
			free(s);free(e);free(w);
			return -1;
		}
		kk=mm-1;
		//while((kk!=0)&&(fabs(e[kk-1])!=0.0))
		while((kk!=0)&&(fabs(e[kk-1])>MIN_DOUBLE))
		{
			d=fabs(s[kk-1])+fabs(s[kk]);
			dd=fabs(e[kk-1]);
			if(dd>eps*d)
				kk=kk-1;
			else
				e[kk-1]=0.0;
		}
		if(kk==mm-1)
		{
			kk=kk+1;
			if(s[kk-1]<0.0)
			{
				s[kk-1]=-s[kk-1];
				for(i=1;i<=n;i++)
				{
					ix=(i-1)*n+kk-1;
					v[ix]=-v[ix];
				}
			}
			while((kk!=ml)&&(s[kk-1]<s[kk]))
			{
				d=s[kk-1];s[kk-1]=s[kk];s[kk]=d;
				if(kk<n)
					for(i=1;i<=n;i++)
					{
						ix=(i-1)*n+kk-1;iy=(i-1)*n+kk;
						d=v[ix];v[ix]=v[iy];v[iy]=d;
					}
					if(kk<m)
						for(i=1;i<=m;i++)
						{
							ix=(i-1)*m+kk-1;
							iy=(i-1)*m+kk;
							d=u[ix];u[ix]=u[iy];u[iy]=d;
						}
						kk=kk+1;
			}
			it=MAX_ITERA;
			mm=mm-1;
		}
		else
		{
			ks=mm;
			//while((ks>kk)&&(fabs(s[ks-1])!=0.0))
			while((ks>kk)&&(fabs(s[ks-1])>MIN_DOUBLE))
			{
				d=0.0;
				if(ks!=mm)
					d=d+fabs(e[ks-1]);
				if(ks!=kk+1) d=d+fabs(e[ks-2]);
				dd=fabs(s[ks-1]);
				if(dd>eps*d)
					ks=ks-1;
				else
					s[ks-1]=0.0;
			}
			if(ks==kk)
			{
				kk=kk+1;
				d=fabs(s[mm-1]);
				t=fabs(s[mm-2]);
				if(t>d)
					d=t;
				t=fabs(e[mm-2]);
				if(t>d)
					d=t;
				t=fabs(s[kk-1]);
				if(t>d)
					d=t;
				t=fabs(e[kk-1]);
				if(t>d)
					d=t;
				sm=s[mm-1]/d;sml=s[mm-2]/d;
				eml=e[mm-2]/d;
				sk=s[kk-1]/d;ek=e[kk-1]/d;
				b=((sml+sm)*(sml-sm)+eml*eml)/2.0;
				c=sm*eml;c=c*c;shh=0.0;
				//if((b!=0.0)||(c!=0.0))
				if((fabs(b)>MIN_DOUBLE)||(fabs(c)>MIN_DOUBLE))
				{
					shh=sqrt(b*b+c);
					if(b<0.0)
						shh=-shh;
					shh=c/(b+shh);
				}
				fg[0]=(sk+sm)*(sk-sm)-shh;
				fg[1]=sk*ek;
				for(i=kk;i<=mm-1;i++)
				{
					sss(fg,cs);
					if(i!=kk)
						e[i-2]=fg[0];
					fg[0]=cs[0]*s[i-1]+cs[1]*e[i-1];
					e[i-1]=cs[0]*e[i-1]-cs[1]*s[i-1];
					fg[1]=cs[1]*s[i];
					s[i]=cs[0]*s[i];
					//if((cs[0]!=1.0)||(cs[1]!=0.0))
					if((fabs(cs[0]-1.0)>MIN_DOUBLE)||(fabs(cs[1])>MIN_DOUBLE))
						for(j=1;j<=n;j++)
						{
							ix=(j-1)*n+i-1;
							iy=(j-1)*n+i;
							d=cs[0]*v[ix]+cs[1]*v[iy];
							v[iy]=-cs[1]*v[ix]+cs[0]*v[iy];
							v[ix]=d;
						}
					sss(fg,cs);
					s[i-1]=fg[0];
					fg[0]=cs[0]*e[i-1]+cs[1]*s[i];
					s[i]=-cs[1]*e[i-1]+cs[0]*s[i];
					fg[1]=cs[1]*e[i];
					e[i]=cs[0]*e[i];
					if(i<m)
						//if((cs[0]!=1.0)||(cs[1]!=0.0))
						if((fabs(cs[0]-1.0)>MIN_DOUBLE)||(fabs(cs[1])>MIN_DOUBLE))
							for(j=1;j<=m;j++)
							{
								ix=(j-1)*m+i-1;
								iy=(j-1)*m+i;
								d=cs[0]*u[ix]+cs[1]*u[iy];
								u[iy]=-cs[1]*u[ix]+cs[0]*u[iy];
								u[ix]=d;
							}
				}
				e[mm-2]=fg[0];
				it=it-1;
			}
			else
			{
				if(ks==mm)
				{
					kk=kk+1;
					fg[1]=e[mm-2];e[mm-2]=0.0;
					for(ll=kk;ll<=mm-1;ll++)
					{
						i=mm+kk-ll-1;
						fg[0]=s[i-1];
						sss(fg,cs);
						s[i-1]=fg[0];
						if(i!=kk)
						{
							fg[1]=-cs[1]*e[i-2];
							e[i-2]=cs[0]*e[i-2];
						}
						//if((cs[0]!=1.0)||(cs[1]!=0.0))
						if((fabs(cs[0]-1.0)>MIN_DOUBLE)||(fabs(cs[1])>MIN_DOUBLE))
							for(j=1;j<=n;j++)
							{
								ix=(j-1)*n+i-1;
								iy=(j-1)*n+mm-1;
								d=cs[0]*v[ix]+cs[1]*v[iy];
								v[iy]=-cs[1]*v[ix]+cs[0]*v[iy];
								v[ix]=d;
							}
					}
				}
				else
				{
					kk=ks+1;
					fg[1]=e[kk-2];
					e[kk-2]=0.0;
					for(i=kk;i<=mm;i++)
					{
						fg[0]=s[i-1];
						sss(fg,cs);
						s[i-1]=fg[0];
						fg[1]=-cs[1]*e[i-1];
						e[i-1]=cs[0]*e[i-1];
						//if((cs[0]!=1.0)||(cs[1]!=0.0))
						if((fabs(cs[0]-1.0)>MIN_DOUBLE)||(fabs(cs[1])>MIN_DOUBLE))
							for(j=1;j<=m;j++)
							{
								ix=(j-1)*m+i-1;
								iy=(j-1)*m+kk-2;
								d=cs[0]*u[ix]+cs[1]*u[iy];								
								u[iy]=-cs[1]*u[ix]+cs[0]*u[iy];
								u[ix]=d;
							}
					}
				}
			}
			}
			}
			free(s);free(e);free(w);
			return l;
}
示例#19
0
void HTTPSClientSession::abort()
{
	SecureStreamSocket sss(socket());
	sss.abort();
}
示例#20
0
gint mudmcw_r1(class mudmcw_r_data *data)
{
time_t vremn;
time(&vremn);
char strsql[1024];
iceb_u_str repl;
iceb_clock sss(data->window);
SQL_str row;
SQLCURSOR cur;
class mudmc_oper prihod;
class mudmc_oper rashod;
char imaf[56];
short dn,mn,gn;
short dk,mk,gk;

if(iceb_rsdatp(&dn,&mn,&gn,data->rk->datan.ravno(),&dk,&mk,&gk,data->rk->datak.ravno(),data->window) != 0)
 {
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);

 }
sprintf(strsql,"%d.%d.%d%s => %d.%d.%d%s\n",
dn,mn,gn,gettext("г."),
dk,mk,gk,gettext("г."));

iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);



SQL_str row1,row2;
class SQLCURSOR cur1,cur2;

prihod.metka=1;
rashod.metka=2;
int kolstr1=0;

sprintf(strsql,"select distinct kodm,ei from Kart order by kodm asc");
int kolstr=0;
if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
 {
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

if(kolstr == 0)
 {
  iceb_menu_soob(gettext("Не найдено ни одной записи !"),data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

while(cur.read_cursor(&row) != 0)
 {
  iceb_pbar(data->bar,kolstr,++kolstr1);    
  sprintf(strsql,"%s|%s",row[0],row[1]);
  prihod.kodm_ei.plus(strsql);
  rashod.kodm_ei.plus(strsql);
 }

sprintf(strsql,"select kod from Prihod");
if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
 {
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

if(kolstr == 0)
 {
  iceb_menu_soob(gettext("Не найдено ни одной записи !"),data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

while(cur.read_cursor(&row) != 0)
 prihod.oper.plus(row[0]);

sprintf(strsql,"select kod from Rashod");
if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
 {
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

if(kolstr == 0)
 {
  iceb_menu_soob(gettext("Не найдено ни одной записи !"),data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

while(cur.read_cursor(&row) != 0)
 rashod.oper.plus(row[0]);
 
prihod.suma.make_class(prihod.kodm_ei.kolih()*prihod.oper.kolih());
rashod.suma.make_class(rashod.kodm_ei.kolih()*rashod.oper.kolih());

prihod.kolih.make_class(prihod.kodm_ei.kolih()*prihod.oper.kolih());
rashod.kolih.make_class(rashod.kodm_ei.kolih()*rashod.oper.kolih());

prihod.kodm_ei_kol.make_class(prihod.kodm_ei.kolih());
prihod.kodm_ei_sum.make_class(prihod.kodm_ei.kolih());
prihod.oper_kol.make_class(prihod.oper.kolih());
prihod.oper_sum.make_class(prihod.oper.kolih());

rashod.kodm_ei_kol.make_class(rashod.kodm_ei.kolih());
rashod.kodm_ei_sum.make_class(rashod.kodm_ei.kolih());
rashod.oper_kol.make_class(rashod.oper.kolih());
rashod.oper_sum.make_class(rashod.oper.kolih());


class iceb_u_spisok kodm_ei; /*Список кодов материалла-единиц измерения*/

class iceb_u_double kolih1; /*количество на начало периода*/
class iceb_u_double kolih2; /*Количество приход за период*/
class iceb_u_double kolih3; /*Количество расход за период*/
class iceb_u_double kolih4; /*Количество остаток на конец периода*/

class iceb_u_double suma1; /*CУмма на начало периода*/
class iceb_u_double suma2; /*CУмма приход за период*/
class iceb_u_double suma3; /*CУмма расход за период*/
class iceb_u_double suma4; /*CУмма остаток на конец периода*/

sprintf(strsql,"select sklad,nomk,kodm,ei,shetu,cena from Kart order by kodm asc");
kolstr=0;
if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
 {
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

if(kolstr == 0)
 {
  iceb_menu_soob(gettext("Не найдено ни одной записи !"),data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
kolstr1=0;
int nomer=0;
int kolstr2=0;
int nomer_op=0;
double kolih=0.;
double suma=0.;
short d,m,g;
int tipz=0;
double cena_po_kart=0.;
class ostatok ost;

while(cur.read_cursor(&row) != 0)
 {
  iceb_pbar(data->bar,kolstr,++kolstr1);    

  if(iceb_u_proverka(data->rk->shet.ravno(),row[4],0,0) != 0)
    continue;
  if(iceb_u_proverka(data->rk->kodmat.ravno(),row[2],0,0) != 0)
    continue;
  if(iceb_u_proverka(data->rk->sklad.ravno(),row[0],0,0) != 0)
    continue;

  sprintf(strsql,"select kodgr,naimat from Material where kodm=%s",row[2]);
  if(iceb_sql_readkey(strsql,&row1,&cur1,data->window) == 1)
   {
      if(iceb_u_proverka(data->rk->grupa.ravno(),row1[0],0,0) != 0)
        continue;
      if(iceb_u_proverka(data->rk->naim.ravno(),row1[1],4,0) != 0)
        continue;
   }
  ostkarw(dn,mn,gn,dk,mk,gk,atoi(row[0]),atoi(row[1]),&ost);

  if(ost.ostm[0] == 0. && ost.ostm[1] == 0. && ost.ostm[3] == 0.)
   continue;  

  cena_po_kart=atof(row[5]);
  cena_po_kart=iceb_u_okrug(cena_po_kart,okrcn);
  
  sprintf(strsql,"%s|%s",row[2],row[3]);
  if((nomer=kodm_ei.find_r(strsql)) < 0)
    kodm_ei.plus(strsql);

  kolih1.plus(ost.ostm[0],nomer);
  kolih2.plus(ost.ostm[1],nomer);
  kolih3.plus(ost.ostm[2],nomer);
  kolih4.plus(ost.ostm[3],nomer);

  suma1.plus(ost.ostmc[0],nomer);
  suma2.plus(ost.ostmc[1],nomer);
  suma3.plus(ost.ostmc[2],nomer);
  suma4.plus(ost.ostmc[3],nomer);


  sprintf(strsql,"select nomd,datd,tipz,kolih,cena,datdp from Zkart where sklad=%s and nomk=%s and \
datdp >= '%04d-%02d-%02d' and datdp <= '%04d-%02d-%02d'",row[0],row[1],gn,mn,dn,gk,mk,dk);
  if((kolstr2=cur1.make_cursor(&bd,strsql)) < 0)
   {
    iceb_menu_soob(gettext("Не найдено ни одной записи !"),data->window);
    continue;
   }

  while(cur1.read_cursor(&row1) != 0)
   {
    tipz=atoi(row1[2]);
    iceb_u_rsdat(&d,&m,&g,row1[5],2);

    if(iceb_u_SRAV(row1[0],"000",0) == 0)
        continue;

    kolih=atof(row1[3]);
    suma=kolih*cena_po_kart;
    suma=iceb_u_okrug(suma,okrg1);
    /*Узнаём код операции*/
    sprintf(strsql,"select kodop from Dokummat where datd='%s' and sklad=%s and nomd='%s'",

    row1[1],row[0],row1[0]);
    if(iceb_sql_readkey(strsql,&row2,&cur2,data->window) != 1)
     {
      sprintf(strsql,"%s %s %s %s",gettext("Не нашли документ!"),row1[1],row[0],row1[0]);
      iceb_menu_soob(strsql,data->window);
      continue;
     }
  
    sprintf(strsql,"%s|%s",row[2],row[3]);

    if(tipz == 1)
     {
      nomer_op=prihod.oper.find(row2[0]);
      nomer=prihod.kodm_ei.find(strsql);     
      prihod.suma.plus(suma,nomer*prihod.oper.kolih()+nomer_op);
      prihod.kolih.plus(kolih,nomer*prihod.oper.kolih()+nomer_op);

      prihod.kodm_ei_kol.plus(kolih,nomer);
      prihod.kodm_ei_sum.plus(suma,nomer);

      prihod.oper_kol.plus(kolih,nomer_op);
      prihod.oper_sum.plus(suma,nomer_op);

     }
    else
     {
  
      nomer_op=rashod.oper.find(row2[0]);
      nomer=rashod.kodm_ei.find(strsql);     
      rashod.suma.plus(suma,nomer*rashod.oper.kolih()+nomer_op);
      rashod.kolih.plus(kolih,nomer*rashod.oper.kolih()+nomer_op);
      
      rashod.kodm_ei_kol.plus(kolih,nomer);
      rashod.kodm_ei_sum.plus(suma,nomer);


      rashod.oper_kol.plus(kolih,nomer_op);
      rashod.oper_sum.plus(suma,nomer_op);
     }
   }
 }
FILE *ff;
sprintf(imaf,"mudmc%d.lst",getpid());

if((ff = fopen(imaf,"w")) == NULL)
 {
  iceb_er_op_fil(imaf,"",errno,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
iceb_u_zagolov(gettext("Расчёт движения по кодам материалов"),dn,mn,gn,dk,mk,gk,organ,ff);

fprintf(ff,"\x1B\x4D"); /*12-знаков*/
fprintf(ff,"\x0F");  /*Ужатый режим*/

/*печать реквизитов поиска*/
mudmc_rkp(data->rk,ff);


fprintf(ff,"\
-------------------------------------------------------------------------------------------------------------------------------------\n");
fprintf(ff,"\
 Код  |        Наименование          |Едини.|Остаток на %02d.%02d.%04d|      Приход         |       Расход        |Остаток на %02d.%02d.%04d|\n\
м-ала |         материалла           |измер.|Количество|  Сумма   |Количество|  Сумма   |Количество|  Сумма   |Количество|  Сумма   |\n",
dn,mn,gn,dk,mk,gk);

fprintf(ff,"\
-------------------------------------------------------------------------------------------------------------------------------------\n");
class iceb_u_str kodmat;
class iceb_u_str ei;
char naim[512];
for(int ii=0; ii < kodm_ei.kolih(); ii++)
 {
  iceb_u_polen(kodm_ei.ravno(ii),&kodmat,1,'|');
  iceb_u_polen(kodm_ei.ravno(ii),&ei,2,'|');
  memset(naim,'\0',sizeof(naim));
  sprintf(strsql,"select naimat from Material where kodm=%d",kodmat.ravno_atoi());
  if(iceb_sql_readkey(strsql,&row,&cur,data->window) == 1)
   strncpy(naim,row[0],sizeof(naim)-1);
  fprintf(ff,"\
%6d %-*.*s %-*.*s %10.10g %10.2f %10.10g %10.2f %10.10g %10.2f %10.10g %10.2f\n",
  kodmat.ravno_atoi(),
  iceb_u_kolbait(30,naim),iceb_u_kolbait(30,naim),naim,
  iceb_u_kolbait(6,ei.ravno()),iceb_u_kolbait(6,ei.ravno()),ei.ravno(),
  kolih1.ravno(ii),suma1.ravno(ii),
  kolih2.ravno(ii),suma2.ravno(ii),
  kolih3.ravno(ii),suma3.ravno(ii),
  kolih4.ravno(ii),suma4.ravno(ii));
  
 }

fprintf(ff,"\
-------------------------------------------------------------------------------------------------------------------------------------\n");

fprintf(ff,"%*s %10.10g %10.2f %10.10g %10.2f %10.10g %10.2f %10.10g %10.2f\n",
iceb_u_kolbait(44,gettext("Итого")),gettext("Итого"),
kolih1.suma(), 
suma1.suma(), 
kolih2.suma(), 
suma2.suma(), 
kolih3.suma(), 
suma3.suma(), 
kolih4.suma(), 
suma4.suma()); 

iceb_podpis(ff,data->window);
fclose(ff);

iceb_ustpeh(imaf,0,data->window);

data->rk->imaf.plus(imaf);
data->rk->naimf.plus(gettext("Расчёт движения по кодам материалов"));

sprintf(imaf,"opp%d.lst",getpid());

data->rk->imaf.plus(imaf);
data->rk->naimf.plus(gettext("Расшифровка приходов по операциям"));

mudmc_po(dn,mn,gn,dk,mk,gk,imaf,&prihod,data->rk,data->window);

iceb_ustpeh(imaf,0,data->window);

sprintf(imaf,"opr%d.lst",getpid());


data->rk->imaf.plus(imaf);
data->rk->naimf.plus(gettext("Расшифровка расходов по операциям"));
mudmc_po(dn,mn,gn,dk,mk,gk,imaf,&rashod,data->rk,data->window);

iceb_ustpeh(imaf,0,data->window);





gtk_label_set_text(GTK_LABEL(data->label),gettext("Расчет закончен"));

data->kon_ras=0;
gtk_widget_set_sensitive(GTK_WIDGET(data->knopka),TRUE);//доступна
gtk_widget_grab_focus(data->knopka);
gtk_widget_show_all(data->window);

iceb_printw_vr(vremn,data->buffer,data->view);

data->voz=0;
return(FALSE);

}
示例#21
0
void l_dover_create_list (class l_dover_data *data)
{
iceb_clock sss(data->window);
GtkListStore *model=NULL;
GtkTreeIter iter;
SQLCURSOR cur;
char strsql[512];
int  kolstr=0;
SQL_str row;
//GdkColor color;

data->kl_shift=0; //0-отжата 1-нажата  


if(data->treeview != NULL)
  gtk_widget_destroy(data->treeview);

data->treeview = gtk_tree_view_new();


gtk_container_add (GTK_CONTAINER (data->sw), data->treeview);

g_signal_connect(data->treeview,"row_activated",G_CALLBACK(l_dover_v_row),data);

GtkTreeSelection *selection=gtk_tree_view_get_selection(GTK_TREE_VIEW(data->treeview));
gtk_tree_selection_set_mode(selection,GTK_SELECTION_SINGLE);
g_signal_connect(selection,"changed",G_CALLBACK(l_dover_vibor),data);

gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (data->treeview), TRUE); //Устанавливаются полоски при отображении списка
gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (data->treeview)),GTK_SELECTION_SINGLE);




model = gtk_list_store_new (NUM_COLUMNS+1, 
G_TYPE_INT,
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_INT);


sprintf(strsql,"select * from Uddok1 where datd='%s' and nomd='%s'",data->datdov.ravno_sqldata(),data->nomdov.ravno());

if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
 {
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
  return;
 }
//gtk_list_store_clear(model);

class iceb_u_str ss[NUM_COLUMNS];

data->kolzap=0;

while(cur.read_cursor(&row) != 0)
 {
//  printf("%s %s %s %s\n",row[0],row[1],row[2],row[3]);
  

  ss[COL_NZ].new_plus(row[2]);
  
  /*содержимое записи*/
  ss[COL_ZAPIS].new_plus(iceb_u_toutf(row[3]));
  

  ss[COL_EI].new_plus(iceb_u_toutf(row[4]));
  ss[COL_KOLIH].new_plus(iceb_u_toutf(row[5]));

  //Дата и время записи
  ss[COL_DATA_VREM].new_plus(iceb_u_toutf(iceb_u_vremzap(row[7])));

  //Кто записал
  ss[COL_KTO].new_plus(iceb_kszap(row[6],0,data->window));

  
  gtk_list_store_append (model, &iter);

  gtk_list_store_set (model, &iter,
  COL_NZ,ss[COL_NZ].ravno_atoi(),
  COL_ZAPIS,ss[COL_ZAPIS].ravno(),
  COL_EI,ss[COL_EI].ravno(),
  COL_KOLIH,ss[COL_KOLIH].ravno(),
  COL_DATA_VREM,ss[COL_DATA_VREM].ravno(),
  COL_KTO,ss[COL_KTO].ravno(),
  NUM_COLUMNS,data->kolzap,
  -1);

  data->kolzap++;
 }

gtk_tree_view_set_model (GTK_TREE_VIEW(data-> treeview),GTK_TREE_MODEL (model));

g_object_unref (GTK_TREE_MODEL (model));

l_dover_add_columns (GTK_TREE_VIEW (data->treeview));


if(data->kolzap == 0)
 {
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK3]),FALSE);//Недоступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK2]),FALSE);//Недоступна
 }
else
 {
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK3]),TRUE);//Доступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK2]),TRUE);//Доступна
 }

gtk_widget_show (data->treeview);
gtk_widget_show (data->sw);

//Стать подсветкой стороки на нужный номер строки
iceb_snanomer(data->kolzap,&data->snanomer,data->treeview);


iceb_u_str stroka;
iceb_u_str zagolov;
zagolov.plus(gettext("Доверенность"));

sprintf(strsql," %s:%d",gettext("Количество записей"),data->kolzap);
zagolov.plus(strsql);
zagolov.ps_plus(gettext("Дата"));
zagolov.plus(":");
zagolov.plus(data->datdov.ravno());
zagolov.plus(" ");

zagolov.ps_plus(gettext("Номер"));
zagolov.plus(":");
zagolov.plus(data->nomdov.ravno());

gtk_label_set_text(GTK_LABEL(data->label_kolstr),zagolov.ravno_toutf());


gtk_widget_show(data->label_kolstr);

}
示例#22
0
int
main ()
{
  struct ss  ss;
  struct ss  ssa[2];
  string x = make_string ("this is x");
  zzz_type c = make_container ("container");
  zzz_type c2 = make_container ("container2");
  const struct string_repr cstring = { { "const string" } };
  /* Clearing by being `static' could invoke an other GDB C++ bug.  */
  struct nullstr nullstr;

  init_ss(&ss, 1, 2);
  init_ss(ssa+0, 3, 4);
  init_ss(ssa+1, 5, 6);
  memset (&nullstr, 0, sizeof nullstr);

  struct ns  ns;
  ns.null_str = "embedded\0null\0string";
  ns.length = 20;

#ifdef __cplusplus
  S cps;

  cps.zs = 7;
  init_s(&cps, 8);

  SS cpss;
  cpss.zss = 9;
  init_s(&cpss.s, 10);

  SS cpssa[2];
  cpssa[0].zss = 11;
  init_s(&cpssa[0].s, 12);
  cpssa[1].zss = 13;
  init_s(&cpssa[1].s, 14);

  SSS sss(15, cps);

  SSS& ref (sss);

  Derived derived;
  
#endif

  add_item (&c, 23);		/* MI breakpoint here */
  add_item (&c, 72);

#ifdef MI
  add_item (&c, 1011);
  c.elements[0] = 1023;
  c.elements[0] = 2323;

  add_item (&c2, 2222);
  add_item (&c2, 3333);

  substruct_test ();
  do_nothing ();
#endif

  return 0;      /* break to inspect struct and union */
}
示例#23
0
gint l_klient_imp1(class l_klient_imp_data *data)
{
time_t vremn;
time(&vremn);
char strsql[500];
iceb_clock sss(data->window);
struct stat work;


if(stat(data->imafz.ravno(),&work) != 0)
 {
  
  sprintf(strsql,"%s %s !",gettext("Не найден файл"),data->imafz.ravno());
  iceb_menu_soob(strsql,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
  
 }



FILE *ff;

if((ff = fopen(data->imafz.ravno(),"r")) == NULL)
 {
  iceb_er_op_fil(data->imafz.ravno(),"",errno,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
char imafprom[50];
FILE *ffprom;
sprintf(imafprom,"prom%d.tmp",getpid());
if((ffprom = fopen(imafprom,"w")) == NULL)
 {
  iceb_er_op_fil(imafprom,"",errno,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

char kod[20];
char grup[20];
int pl=0;
char pol[50];

int  kolkart=0;
float razmer=0.;
char strok[1024];
int i=0;

while(fgets(strok,sizeof(strok),ff) != NULL)
 {
  i=strlen(strok);
  razmer+=i;
  if(strok[i-2] == '\r') //Возврат каретки меняем на пробел
   strok[i-2]=' ';

  iceb_printw(iceb_u_toutf(strok),data->buffer,data->view);
 
  iceb_pbar(data->bar,work.st_size,razmer);    

  if(iceb_u_polen(strok,kod,sizeof(kod),1,'|') != 0)
   {
    fprintf(ffprom,"%s",strok);
    continue;
   }
  
  //Проверяем на отсутсвие такого табельного номера в базе данных
  sprintf(strsql,"select kod from Taxiklient where kod='%s'",kod);
  if(iceb_sql_readkey(strsql,data->window) > 0)
   {
    
    sprintf(strsql,gettext("Карточка %s уже введена !"),kod);
    iceb_menu_soob(strsql,data->window);
    fprintf(ffprom,"%s\n%s\n",strok,strsql);
    continue;
   } 

  iceb_u_polen(strok,grup,sizeof(grup),2,'|');
  //проверяем группу клиента
  sprintf(strsql,"select kod from Grupklient where kod='%s'",grup);
  if(iceb_sql_readkey(strsql,data->window) != 1)
   {
    
    sprintf(strsql,"%s %s !",gettext("Не найдено код группы"),grup);
    iceb_menu_soob(strsql,data->window);
    fprintf(ffprom,"%s\n%s\n",strok,strsql);
    continue;
   } 

  iceb_u_polen(strok,pol,sizeof(pol),3,'|');
  pl=0;
  if(pol[0] == 'W' || pol[0] == 'w')
   pl=1;  
   
  sprintf(strsql,"insert into Taxiklient set kod='%s', grup='%s', pl=%d",kod,grup,pl);
  
  if(iceb_sql_zapis(strsql,1,0,data->window) != 0)
    continue;
  kolkart++;  
 }

fclose(ff);
fclose(ffprom);
unlink(data->imafz.ravno());

rename(imafprom,data->imafz.ravno());


class iceb_u_str repl;

repl.new_plus(gettext("Загрузка завершена"));
repl.ps_plus(gettext("Количество загруженых карточек"));
repl.plus(":");
repl.plus(kolkart);

iceb_menu_soob(&repl,data->window);

data->kon_ras=0;

gtk_label_set_text(GTK_LABEL(data->label),gettext("Расчет закончен"));

gtk_widget_set_sensitive(GTK_WIDGET(data->knopka),TRUE);//доступна
gtk_widget_grab_focus(data->knopka);
gtk_widget_show_all(data->window);

iceb_printw_vr(vremn,data->buffer,data->view);

data->voz=0;

return(FALSE);
}
示例#24
0
gint upl_shkg_r1(class upl_shkg_r_data *data)
{
time_t vremn;
time(&vremn);
char strsql[1024];
iceb_u_str repl;
iceb_clock sss(data->window);
SQL_str row;
class SQLCURSOR cur;

printf("%s\n",__FUNCTION__);

short dn,mn,gn;
short dk,mk,gk;

if(iceb_rsdatp(&dn,&mn,&gn,data->rk->datan.ravno(),&dk,&mk,&gk,data->rk->datak.ravno(),data->window) != 0)
 {
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }


sprintf(strsql,"%d.%d.%d%s => %d.%d.%d%s\n",
dn,mn,gn,gettext("г."),
dk,mk,gk,gettext("г."));

iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);


long	kolstr=0;
SQL_str row1;
FILE    *ff;
char    imaf[56];
int	kollist=0;
int	kolstrok=0;

sprintf(strsql,"select datd,nomd,kt,shet,pr,przg,prgr,vrrd,shet,kv from Upldok2 where datd >= '%d-%d-%d' and \
datd <= '%d-%d-%d' order by shet asc",gn,mn,dn,gk,mk,dk);


SQLCURSOR cur1;
if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
 {
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }
if(kolstr == 0)
 {
  iceb_menu_soob(gettext("Не нашли ни одной записи!"),data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }



char kodmt[32];
char shetz[32];

memset(kodmt,'\0',sizeof(kodmt));
memset(shetz,'\0',sizeof(shetz));

class iceb_u_spisok shet_kodt; //Список счёт->код топлива
class iceb_u_double suma_shet_kodt; //Расход топлива в литрах

float kolstr1=0;
int nomer=0;
double suma;
while(cur.read_cursor(&row) != 0)
 {
  iceb_pbar(data->bar,kolstr,++kolstr1);    

  if(iceb_u_proverka(data->rk->kod_top.ravno(),row[2],0,0) != 0)
   continue;

  if(iceb_u_proverka(data->rk->kod_vod.ravno(),row[9],0,0) != 0)
   continue;

  if(iceb_u_proverka(data->rk->shet.ravno(),row[8],0,0) != 0)
   continue;

  suma=0.;
  sprintf(strsql,"select nst,nstzg,ztvsn,ztvrn from Upldok \
where datd = '%s' and nomd='%s'",row[0],row[1]);
  if(iceb_sql_readkey(strsql,&row1,&cur1,data->window) == 1)
   {
    suma+=atof(row[4])*atof(row1[0])/100.;
    suma+=atof(row[5])*atof(row1[1])/100.;
    suma+=atof(row[6])*atof(row1[2])/100.;
    suma+=atof(row[7])*atof(row1[3]);
    suma=iceb_u_okrug(suma,0.001);
   }  
  else
   {
    sprintf(strsql,"%s\n%s %s",gettext("Не нашли шапку документа!"),row[0],row[1]);
    iceb_menu_soob(strsql,data->window);    
    continue;    
   }
  
  sprintf(strsql,"%s|%s",row[3],row[2]);

  if((nomer=shet_kodt.find(strsql)) == -1)
   shet_kodt.plus(strsql);

  suma_shet_kodt.plus(suma,nomer);
 }

sprintf(imaf,"vstkg%d.lst",getpid());

if((ff = fopen(imaf,"w")) == NULL)
 {
  iceb_er_op_fil(imaf,"",errno,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }


kolstrok=5;
iceb_u_zagolov(gettext("Ведомость списания топлива по счетам в киллограммах"),dn,mn,gn,dk,mk,gk,organ,ff);

if(data->rk->kod_top.ravno()[0] != '\0')
 {
  kolstrok++;
  fprintf(ff,"%s:%s\n",gettext("Код топлива"),data->rk->kod_top.ravno());  
 }

if(data->rk->kod_vod.ravno()[0] != '\0')
 {
  kolstrok++;
  fprintf(ff,"%s:%s\n",gettext("Код водителя"),data->rk->kod_vod.ravno());  
 }

if(data->rk->shet.ravno()[0] != '\0')
 {
  kolstrok++;
  fprintf(ff,"%s:%s\n",gettext("Счет"),data->rk->shet.ravno());  
 }

svst_kg(&kollist,&kolstrok,ff);
char shet_sp[32];
char kod_top[32];
double koef=0.;
double cn_suma=0.;
char shet_sp_z[32];
double srcn=0.;
double itog_shet[3];

memset(&itog_shet,'\0',sizeof(itog_shet));

double itog[3];
memset(&itog,'\0',sizeof(itog));

memset(shet_sp,'\0',sizeof(shet_sp));
memset(shet_sp_z,'\0',sizeof(shet_sp_z));
for(int i=0; i < shet_kodt.kolih() ; i++)
 {
  iceb_u_polen(shet_kodt.ravno(i),shet_sp,sizeof(shet_sp),1,'|');  
  iceb_u_polen(shet_kodt.ravno(i),kod_top,sizeof(kod_top),2,'|');  
  if(iceb_u_SRAV(shet_sp,shet_sp_z,0) != 0)
   {
    if(shet_sp_z[0] != '\0')
     uplvst_kg_it(0,itog_shet,ff);
    
    memset(&itog_shet,'\0',sizeof(itog_shet));
    strcpy(shet_sp_z,shet_sp);
   }  


  //читаем среднюю цену и коэффициент перевода
  koef=0.;
  srcn=0.;
  sprintf(strsql,"select srcn,kp from Uplmtsc where datsc <= '%04d-%02d-%02d' and kodt='%s' \
order by datsc desc",
  gn,mn,dn,kod_top);
  if(iceb_sql_readkey(strsql,&row,&cur,data->window) > 0)
   {
    srcn=atof(row[0]);
    koef=atof(row[1]);
   }  
  suma=koef*suma_shet_kodt.ravno(i);
  suma=iceb_u_okrug(suma,0.001);
  
  shetvst_kg(&kolstrok,&kollist,ff);
  
  cn_suma=srcn*suma;
  
  itog_shet[0]+=suma_shet_kodt.ravno(i);
  itog_shet[1]+=suma;
  itog_shet[2]+=cn_suma;

  itog[0]+=suma_shet_kodt.ravno(i);
  itog[1]+=suma;
  itog[2]+=cn_suma;
  
  fprintf(ff,"%-*s %-*s %14.14g %11.11g %14.14g %7.2f %7.2f\n",
  iceb_u_kolbait(6,shet_sp),shet_sp,
  iceb_u_kolbait(11,kod_top),kod_top,
  suma_shet_kodt.ravno(i),koef,suma,srcn,cn_suma);
  
 }
uplvst_kg_it(0,itog_shet,ff);
fprintf(ff,"\
-----------------------------------------------------------------------------\n");
uplvst_kg_it(1,itog,ff);

iceb_podpis(ff,data->window);
fclose(ff);


data->rk->imaf.plus(imaf);
data->rk->naim.plus(gettext("Ведомость списания топлива по счетам в киллограммах"));
iceb_ustpeh(imaf,0,data->window);


gtk_label_set_text(GTK_LABEL(data->label),gettext("Расчет закончен"));

data->kon_ras=0;
gtk_widget_set_sensitive(GTK_WIDGET(data->knopka),TRUE);//доступна
gtk_widget_grab_focus(data->knopka);
gtk_widget_show_all(data->window);

iceb_printw_vr(vremn,data->buffer,data->view);

data->voz=0;
return(FALSE);

}
示例#25
0
gint xrnn_rasp_r1(class xrnn_rasp_r_data *data)
{
time_t vremn;
time(&vremn);
char strsql[1024];
iceb_u_str repl;
iceb_clock sss(data->window);


short dn,mn,gn;
short dk,mk,gk;
iceb_u_rsdat(&dn,&mn,&gn,data->rk->datan.ravno(),1);
iceb_u_rsdat(&dk,&mk,&gk,data->rk->datak.ravno(),1);

sprintf(strsql,"%d.%d.%d%s => %d.%d.%d%s\n",
dn,mn,gn,gettext("г."),
dk,mk,gk,gettext("г."));

iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

iceb_rnfxml(&rek_zag_nn,data->window); /*чтение настроек для создания xml файлов*/




if(iceb_make_kat(&kat_for_nal_nak,"nal_nak_xml",data->window) != 0)
 {
    sss.clear_data();
    gtk_widget_destroy(data->window);
    return(FALSE);
 }

//Чистим каталог от файлов
iceb_delfil(kat_for_nal_nak.ravno(),"xml",data->window);

FILE *ff_xml;
char imaf_xml[56];

FILE *ff_lst_rozkor=NULL;
char imaf_lst_rozkor[56]; /*розрахунок коригування сумм ПДВ*/
sprintf(imaf_lst_rozkor,"rk%d.lst",getpid());

FILE *ff_xml_rozkor=NULL;
char imaf_xml_rozkor[56]; 

/************
  из списка выданных накладных делается Коригування податковых зобов'язань
  из списка полученных накладных делается Коригування податкового кредиту 
*************/

FILE *ff_xml_dot=NULL;
char imaf_xml_dot[56];

memset(imaf_xml_dot,'\0',sizeof(imaf_xml_dot));

int period_type=0;
if(rasrnn_sap_xml(dn,mn,gn,dk,mk,gk,imaf_xml,imaf_xml_dot,imaf_xml_rozkor,&period_type,data->rk->proc_dot.ravno_atof(),
&ff_xml,&ff_xml_dot,&ff_xml_rozkor,data->window) != 0)
 return(1);

if((ff_lst_rozkor=fopen(imaf_lst_rozkor,"w")) == NULL)
 {
  iceb_er_op_fil(imaf_lst_rozkor,"",errno,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

iceb_u_zagolov("Розрахунок коригування сум ПДВ до податкової\nдекларації з податку на додану вартість",dn,mn,gn,dk,mk,gk,organ,ff_lst_rozkor);


FILE *ff;
char imaf[112];
sprintf(imaf,"rnn%d.lst",getpid());

if((ff=fopen(imaf,"w")) == NULL)
 {
  iceb_er_op_fil(imaf,"",errno,data->window);
  sss.clear_data();
  gtk_widget_destroy(data->window);
  return(FALSE);
 }

FILE *ff_dot=NULL;
char imaf_dot[112];
memset(imaf_dot,'\0',sizeof(imaf_dot));

if(data->rk->proc_dot.ravno_atof() != 0.)
 {
  sprintf(imaf_dot,"rnnd%d.lst",getpid());

  if((ff_dot=fopen(imaf_dot,"w")) == NULL)
   {
    iceb_er_op_fil(imaf_dot,"",errno,data->window);
    sss.clear_data();
    gtk_widget_destroy(data->window);
    return(FALSE);
   }

 }
 
FILE *ff_prot;
char imaf_prot[112];
sprintf(imaf_prot,"rnnp%d.lst",getpid());

if((ff_prot=fopen(imaf_prot,"w")) == NULL)
 {
    iceb_er_op_fil(imaf_prot,"",errno,data->window);
    sss.clear_data();
    gtk_widget_destroy(data->window);
    return(FALSE);
 }

class rnn_d5w dod5;

//Печатаем шапку
int kol_strok=rpvnn_psw(dn,mn,gn,dk,mk,gk,ff,data->window);
if(ff_dot != NULL)
 rpvnn_psw(dn,mn,gn,dk,mk,gk,ff_dot,data->window);

char imaf_p_dbf[56];
char imaf_p_dbf_d[56];
char imaf_v_dbf[56];
char imaf_v_dbf_d[56];

memset(imaf_p_dbf,'\0',sizeof(imaf_p_dbf));
memset(imaf_p_dbf_d,'\0',sizeof(imaf_p_dbf_d));
memset(imaf_v_dbf,'\0',sizeof(imaf_v_dbf));
memset(imaf_v_dbf_d,'\0',sizeof(imaf_v_dbf_d));

if(iceb_u_sravmydat(data->rk->datan.ravno(),"1.1.2011") < 0)
 {
  if(data->rk->pr_ras == 0 || data->rk->pr_ras == 1)
   {
    fprintf(ff_lst_rozkor,"\nКоригування податкового кредиту\n");

    if(rasrnn_pw(data->rk,kol_strok,period_type,ff,ff_prot,ff_xml,ff_dot,ff_xml_dot,
    ff_xml_rozkor,
    ff_lst_rozkor,
    &dod5,imaf_p_dbf,imaf_p_dbf_d,data->bar,data->view,data->buffer,data->window) == 0)

    if(data->rk->pr_ras == 0 )
     {
      fprintf(ff,"\f");
      if(ff_dot != NULL)
        fprintf(ff_dot,"\f");
      kol_strok=0;
     }
   }
  if(data->rk->pr_ras == 0 || data->rk->pr_ras == 2)
   {
    fprintf(ff_lst_rozkor,"\nКоригування податкових зобов'язань\n");
    rasrnn_vw(data->rk,kol_strok,period_type,ff,ff_prot,ff_xml,ff_dot,ff_xml_dot,
    ff_xml_rozkor,
    ff_lst_rozkor,
    &dod5,imaf_v_dbf,imaf_v_dbf_d,data->bar,data->view,data->buffer,data->window);
   }
 }

if(iceb_u_sravmydat(data->rk->datan.ravno(),"1.1.2011") >= 0)
 {
  if(data->rk->pr_ras == 0 || data->rk->pr_ras == 2)
   {
    fprintf(ff_lst_rozkor,"\nКоригування податкових зобов'язань\n");
    if(rasrnn_vw(data->rk,kol_strok,period_type,ff,ff_prot,ff_xml,ff_dot,ff_xml_dot,
    ff_xml_rozkor,
    ff_lst_rozkor,
    &dod5,imaf_v_dbf,imaf_v_dbf_d,data->bar,data->view,data->buffer,data->window) == 0)
    if(data->rk->pr_ras == 0 )
     {
      fprintf(ff,"\f");
      if(ff_dot != NULL)
        fprintf(ff_dot,"\f");
      kol_strok=0;
     }
    
   }
  if(data->rk->pr_ras == 0 || data->rk->pr_ras == 1)
   {
    fprintf(ff_lst_rozkor,"\nКоригування податкового кредиту\n");

    rasrnn_pw(data->rk,kol_strok,period_type,ff,ff_prot,ff_xml,ff_dot,ff_xml_dot,
    ff_xml_rozkor,
    ff_lst_rozkor,
    &dod5,imaf_p_dbf,imaf_p_dbf_d,data->bar,data->view,data->buffer,data->window);
   }
 }
iceb_podpis(ff_lst_rozkor,data->window);
fclose(ff_lst_rozkor);

class iceb_fioruk_rk rukov;
class iceb_fioruk_rk glbuh;
iceb_fioruk(1,&rukov,data->window);
iceb_fioruk(2,&glbuh,data->window);

short dt,mt,gt;
iceb_u_poltekdat(&dt,&mt,&gt);

fprintf(ff_xml_rozkor,"   <HFILL>%02d%02d%d</HFILL>\n",dt,mt,gt);
fprintf(ff_xml_rozkor,"   <HBOS>%s</HBOS>\n",rukov.fio.ravno());
fprintf(ff_xml_rozkor,"   <HBUH>%s</HBUH>\n",glbuh.fio.ravno());
fprintf(ff_xml_rozkor,"   <HFO xsi:nil=\"true\"></HFO>\n");
fprintf(ff_xml_rozkor," </DECLARBODY>\n");
fprintf(ff_xml_rozkor,"</DECLAR>\n");
fclose(ff_xml_rozkor);


fprintf(ff_xml,"   <HFILL>%02d%02d%d</HFILL>\n",dt,mt,gt);
fprintf(ff_xml,"   <HBOS>%s</HBOS>\n",rukov.fio.ravno());
fprintf(ff_xml,"   <HKBOS>%s</HKBOS>\n",rukov.inn.ravno());
fprintf(ff_xml,"   <HBUH>%s</HBUH>\n",glbuh.fio.ravno());
fprintf(ff_xml,"   <HKBUH>%s</HKBUH>\n",glbuh.inn.ravno());
fprintf(ff_xml,"  </DECLARBODY>\n");
fprintf(ff_xml,"</DECLAR>\n");
fclose(ff_xml);
if(ff_xml_dot != NULL)
 {
  fprintf(ff_xml_dot,"   <HFILL>%02d%02d%d</HFILL>\n",dt,mt,gt);
  fprintf(ff_xml_dot,"   <HBOS>%s</HBOS>\n",rukov.fio.ravno());
  fprintf(ff_xml_dot,"   <HKBOS>%s</HKBOS>\n",rukov.inn.ravno());
  fprintf(ff_xml_dot,"   <HBUH>%s</HBUH>\n",glbuh.fio.ravno());
  fprintf(ff_xml_dot,"   <HKBUH>%s</HKBUH>\n",glbuh.inn.ravno());
  fprintf(ff_xml_dot,"  </DECLARBODY>\n");
  fprintf(ff_xml_dot,"</DECLAR>\n");
  fclose(ff_xml_dot);
 }
iceb_podpis(ff,data->window);
fclose(ff);

if(ff_dot != NULL)
 {
  iceb_podpis(ff_dot,data->window);
  fclose(ff_dot);

 }
iceb_podpis(ff_prot,data->window);
fclose(ff_prot);

char imaf_dod5_xml[112];
char imaf_svod[56];
char imaf_svod_naim[56];

char imaf_dod5_xml_dot[112];
char imaf_svod_dot[56];
memset(imaf_dod5_xml_dot,'\0',sizeof(imaf_dod5_xml_dot));
memset(imaf_svod_dot,'\0',sizeof(imaf_svod_dot));

rnnrd5w(dn,mn,gn,dk,mk,gk,imaf_dod5_xml,imaf_svod,imaf_svod_naim,imaf_dod5_xml_dot,imaf_svod_dot,data->rk->proc_dot.ravno_atof(),&dod5,data->window);


data->rk->imaf.plus(imaf);
data->rk->naim.plus("Реєстр податкових накладних (Загальний)");

if(imaf_dot[0] != '\0')
 {
  data->rk->imaf.plus(imaf_dot);
  data->rk->naim.plus("Реєстр податкових накладних (Переробного в-ва))");
 }

data->rk->imaf.plus(imaf_svod);
data->rk->naim.plus("Додаток 5");
if(imaf_svod_dot[0] != '\0')
 {
  data->rk->imaf.plus(imaf_svod_dot);
  data->rk->naim.plus("Додаток 2");
 }
data->rk->imaf.plus(imaf_svod_naim);
data->rk->naim.plus("Додаток 5 з найменуванням контрагентів");

data->rk->imaf.plus(imaf_prot);
data->rk->naim.plus("Протокол расчёта");

data->rk->imaf.plus(imaf_lst_rozkor);
data->rk->naim.plus("Додаток 1");


for(int nom=0; nom < data->rk->imaf.kolih(); nom++)
 iceb_ustpeh(data->rk->imaf.ravno(nom),3,data->window);
 
data->rk->imaf.plus(imaf_xml);
data->rk->naim.plus("Реєстр податкових накладних (Загальний) в форматі xml");

data->rk->imaf.plus(imaf_xml_rozkor);
data->rk->naim.plus("Додаток 1 в форматі xml");

if(imaf_xml_dot[0] != '\0')
 {
  data->rk->imaf.plus(imaf_xml_dot);
  data->rk->naim.plus("Реєстр податкових накладних в форматі xml (Переробного в-ва)");
 }

data->rk->imaf.plus(imaf_dod5_xml);
data->rk->naim.plus("Додаток 5 в форматі xml");
if(imaf_dod5_xml_dot[0] != '\0')
 {
  data->rk->imaf.plus(imaf_dod5_xml_dot);
  data->rk->naim.plus("Додаток 2 в форматі xml");
 }

/*Так как dbf файлы делаются отдельно прихоный отдельно расходный то любого из них может небыть*/
if(imaf_p_dbf[0] != '\0')
 {
  data->rk->imaf.plus(imaf_p_dbf);
  data->rk->naim.plus("Реєстр отриманних податкових накладных в форматі dbf (Загальний)");
 }
if(imaf_p_dbf_d[0] != '\0')
 {
  data->rk->imaf.plus(imaf_p_dbf_d);
  data->rk->naim.plus("Реєстр отриманих податкових накладных в формате dbf (Переробного в-ва)");
 }
printf("imaf_v_dbf=%s\n",imaf_v_dbf);

if(imaf_v_dbf[0] != '\0')
 {
  data->rk->imaf.plus(imaf_v_dbf);
  data->rk->naim.plus("Реєстр виданих податкових накладных в форматі dbf (Загальний)");
 }
if(imaf_v_dbf_d[0] != '\0')
 {
  data->rk->imaf.plus(imaf_v_dbf_d);
  data->rk->naim.plus("Реестр виданих податкових накладных в формате dbf (Переробного в-ва)");
 }











gtk_label_set_text(GTK_LABEL(data->label),gettext("Расчет закончен"));

data->kon_ras=0;
gtk_widget_set_sensitive(GTK_WIDGET(data->knopka),TRUE);//доступна
gtk_widget_grab_focus(data->knopka);
gtk_widget_show_all(data->window);

iceb_printw_vr(vremn,data->buffer,data->view);

data->voz=0;
return(FALSE);

}
示例#26
0
void l_zargni_create_list (class l_zargni_data *data)
{
iceb_clock sss(data->window);
GtkListStore *model=NULL;
GtkTreeIter iter;
SQLCURSOR cur;
char strsql[512];
int  kolstr=0;
SQL_str row;
//GdkColor color;

data->kl_shift=0; //0-отжата 1-нажата  


if(data->treeview != NULL)
  gtk_widget_destroy(data->treeview);

data->treeview = gtk_tree_view_new();


gtk_container_add (GTK_CONTAINER (data->sw), data->treeview);

g_signal_connect(data->treeview,"row_activated",G_CALLBACK(l_zargni_v_row),data);

GtkTreeSelection *selection=gtk_tree_view_get_selection(GTK_TREE_VIEW(data->treeview));
gtk_tree_selection_set_mode(selection,GTK_SELECTION_SINGLE);
g_signal_connect(selection,"changed",G_CALLBACK(l_zargni_vibor),data);

gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (data->treeview), TRUE); //Устанавливаются полоски при отображении списка
gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (data->treeview)),GTK_SELECTION_SINGLE);




model = gtk_list_store_new (NUM_COLUMNS+1, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_STRING, 
G_TYPE_INT);


sprintf(strsql,"select * from Gnali order by kod asc");

if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
 {
  iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
  return;
 }
//gtk_list_store_clear(model);

iceb_u_str ss[NUM_COLUMNS];

data->kolzap=0;

while(cur.read_cursor(&row) != 0)
 {
//  printf("%s %s %s %s\n",row[0],row[1],row[2],row[3]);
  
  if(l_zargni_prov_row(row,data) != 0)
    continue;


  if(iceb_u_SRAV(data->kod_gni_tv.ravno(),row[0],0) == 0)
    data->snanomer=data->kolzap;

  //Код
  ss[COL_KOD].new_plus(iceb_u_toutf(row[0]));
  
  //Наименование
  ss[COL_NAIM].new_plus(iceb_u_toutf(row[1]));

  //Счёт
  ss[COL_KONTR].new_plus(iceb_u_toutf(row[2]));

  //Дата и время записи
  ss[COL_DATA_VREM].new_plus(iceb_u_toutf(iceb_u_vremzap(row[4])));

  //Кто записал
  ss[COL_KTO].new_plus(iceb_kszap(row[3],0,data->window));

  
  gtk_list_store_append (model, &iter);

  gtk_list_store_set (model, &iter,
  COL_KOD,ss[COL_KOD].ravno(),
  COL_NAIM,ss[COL_NAIM].ravno(),
  COL_KONTR,ss[COL_KONTR].ravno(),
  COL_DATA_VREM,ss[COL_DATA_VREM].ravno(),
  COL_KTO,ss[COL_KTO].ravno(),
  NUM_COLUMNS,data->kolzap,
  -1);

  data->kolzap++;
 }
data->kod_gni_tv.new_plus("");

gtk_tree_view_set_model (GTK_TREE_VIEW(data-> treeview),GTK_TREE_MODEL (model));

g_object_unref (GTK_TREE_MODEL (model));

l_zargni_add_columns (GTK_TREE_VIEW (data->treeview));


if(data->kolzap == 0)
 {
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK3]),FALSE);//Недоступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK5]),FALSE);//Недоступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK2]),FALSE);//Недоступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK3]),FALSE);//Недоступна
 }
else
 {
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK3]),TRUE);//Доступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK5]),TRUE);//Доступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK2]),TRUE);//Доступна
  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK3]),TRUE);//Доступна
 }

gtk_widget_show (data->treeview);
gtk_widget_show (data->sw);

//Стать подсветкой стороки на нужный номер строки
iceb_snanomer(data->kolzap,&data->snanomer,data->treeview);


iceb_u_str stroka;
iceb_u_str zagolov;
zagolov.plus(gettext("Список городов налоговых инспекций"));

sprintf(strsql," %s:%d",gettext("Количество записей"),data->kolzap);
zagolov.plus(strsql);

gtk_label_set_text(GTK_LABEL(data->label_kolstr),zagolov.ravno_toutf());

if(data->metka_poi == 1)
 {
  
  zagolov.new_plus(gettext("Поиск"));
  zagolov.plus(" !!!");

  iceb_str_poisk(&zagolov,data->poisk.kod.ravno(),gettext("Код"));
  iceb_str_poisk(&zagolov,data->poisk.naim.ravno(),gettext("Наименование"));
  

  gtk_label_set_text(GTK_LABEL(data->label_poisk),zagolov.ravno_toutf());
  gtk_widget_show(data->label_poisk);
 }
else
 gtk_widget_hide(data->label_poisk); 

gtk_widget_show(data->label_kolstr);

}
示例#27
0
void l_zar_dok_create_list (class l_zar_dok_data *data)
{
    iceb_clock sss(data->window);
    GtkListStore *model=NULL;
    GtkTreeIter iter;
    SQLCURSOR cur,cur1;
    char strsql[512];
    int  kolstr=0;
    SQL_str row,row1;
//GdkColor color;

    data->kl_shift=0; //0-отжата 1-нажата


    if(data->treeview != NULL)
        gtk_widget_destroy(data->treeview);

    data->treeview = gtk_tree_view_new();


    gtk_container_add (GTK_CONTAINER (data->sw), data->treeview);

    g_signal_connect(data->treeview,"row_activated",G_CALLBACK(l_zar_dok_v_row),data);

    GtkTreeSelection *selection=gtk_tree_view_get_selection(GTK_TREE_VIEW(data->treeview));
    gtk_tree_selection_set_mode(selection,GTK_SELECTION_SINGLE);
    g_signal_connect(selection,"changed",G_CALLBACK(l_zar_dok_vibor),data);

    gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (data->treeview), TRUE); //Устанавливаются полоски при отображении списка
    gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (data->treeview)),GTK_SELECTION_SINGLE);




    model = gtk_list_store_new (NUM_COLUMNS+1,
                                G_TYPE_STRING,
                                G_TYPE_STRING,
                                G_TYPE_STRING,
                                G_TYPE_STRING,
                                G_TYPE_STRING,
                                G_TYPE_STRING,
                                G_TYPE_STRING,
                                G_TYPE_STRING,
                                G_TYPE_INT);


    if(data->dk != 0)
        sprintf(strsql,"select * from Zardok where datd >='%04d-%02d-%02d' and \
datd <= '%04d-%02d-%02d' order by datd,nomd asc",data->gn,data->mn,data->dn,data->gk,data->mk,data->dk);
    else
        sprintf(strsql,"select * from Zardok where datd >='%04d-%02d-%02d' order by datd,nomd asc",data->gn,data->mn,data->dn);

    if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
    {
        iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
        return;
    }
    data->zapros.new_plus(strsql);
//gtk_list_store_clear(model);

    iceb_u_str ss[NUM_COLUMNS];

    data->kolzap=0;
    double suma_dok=0.;
    while(cur.read_cursor(&row) != 0)
    {
        /*printf("%s %s %s %s %s\n",row[0],row[1],row[2],row[3],row[7]);*/

        if(l_zar_dok_prov_row(row,data) != 0)
            continue;


        if(iceb_u_SRAV(data->nomdok_tv.ravno(),row[2],0) == 0 && iceb_u_SRAV(data->datad.ravno(),iceb_u_datzap(row[1]),0) == 0)
            data->snanomer=data->kolzap;

        suma_dok=0.;
        //Узнаём сумму по документа
        sprintf(strsql,"select SUM(suma) from Zarp where datz='%s' and nd='%s'",row[1],row[2]);

        if(iceb_sql_readkey(strsql,&row1,&cur1,data->window) == 1)
        {
            if(row1[0] != NULL)
                suma_dok=atof(row1[0]);
        }
        ss[COL_SUMA].new_plus(suma_dok);

        //Дата
        ss[COL_DATAD].new_plus(iceb_u_datzap(row[1]));

        //Номер документа
        ss[COL_NOMD].new_plus(iceb_u_toutf(row[2]));

        //Подразделение
        ss[COL_PODR].new_plus(iceb_u_toutf(row[3]));
        sprintf(strsql,"select naik from Podr where kod=%s",row[3]);
        if(iceb_sql_readkey(strsql,&row1,&cur1,data->window) == 1)
        {
            ss[COL_PODR].plus(" ");
            ss[COL_PODR].plus(iceb_u_toutf(row1[0]));
        }

        //Коментарий
        ss[COL_KOMENT].new_plus(iceb_u_toutf(row[4]));

        //Дата и время записи
        ss[COL_DATA_VREM].new_plus(iceb_u_toutf(iceb_u_vremzap(row[6])));

        //Кто записал
        ss[COL_KTO].new_plus(iceb_kszap(row[5],0,data->window));

        /*Метка прихода/расхода*/
        if(row[7][0] == '2')
            ss[COL_METKA_ZAP].new_plus("-");
        else
            ss[COL_METKA_ZAP].new_plus("+");

        gtk_list_store_append (model, &iter);

        gtk_list_store_set (model, &iter,
                            COL_DATAD,ss[COL_DATAD].ravno(),
                            COL_NOMD,ss[COL_NOMD].ravno(),
                            COL_PODR,ss[COL_PODR].ravno(),
                            COL_KOMENT,ss[COL_KOMENT].ravno(),
                            COL_DATA_VREM,ss[COL_DATA_VREM].ravno(),
                            COL_KTO,ss[COL_KTO].ravno(),
                            COL_METKA_ZAP,ss[COL_METKA_ZAP].ravno(),
                            COL_SUMA,ss[COL_SUMA].ravno(),
                            NUM_COLUMNS,data->kolzap,
                            -1);

        data->kolzap++;
    }
    data->datad_tv.new_plus("");
    data->nomdok_tv.new_plus("");

    gtk_tree_view_set_model (GTK_TREE_VIEW(data-> treeview),GTK_TREE_MODEL (model));

    g_object_unref (GTK_TREE_MODEL (model));

    l_zar_dok_add_columns (GTK_TREE_VIEW (data->treeview));


    if(data->kolzap == 0)
    {
//  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK3]),FALSE);//Недоступна
        gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK5]),FALSE);//Недоступна
        gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK2]),FALSE);//Недоступна
    }
    else
    {
//  gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK3]),TRUE);//Доступна
        gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[FK5]),TRUE);//Доступна
        gtk_widget_set_sensitive(GTK_WIDGET(data->knopka[SFK2]),TRUE);//Доступна
    }

    gtk_widget_show (data->treeview);
    gtk_widget_show (data->sw);

//Стать подсветкой стороки на нужный номер строки
    iceb_snanomer(data->kolzap,&data->snanomer,data->treeview);


    iceb_u_str stroka;
    iceb_u_str zagolov;
    zagolov.plus(gettext("Список документов"));

    sprintf(strsql," %s:%d",gettext("Количество записей"),data->kolzap);
    zagolov.plus(strsql);

    gtk_label_set_text(GTK_LABEL(data->label_kolstr),zagolov.ravno_toutf());

    if(data->poisk.metka_poi == 1)
    {

        zagolov.new_plus(gettext("Поиск"));
        zagolov.plus(" !!!");

        iceb_str_poisk(&zagolov,data->poisk.datan.ravno(),gettext("Дата начала"));
        iceb_str_poisk(&zagolov,data->poisk.datak.ravno(),gettext("Дата конца"));
        iceb_str_poisk(&zagolov,data->poisk.podr.ravno(),gettext("Подразделение"));
        iceb_str_poisk(&zagolov,data->poisk.koment.ravno(),gettext("Коментарий"));
        iceb_str_poisk(&zagolov,data->poisk.nomdok.ravno(),gettext("Номер документа"));


        gtk_label_set_text(GTK_LABEL(data->label_poisk),zagolov.ravno_toutf());
        gtk_widget_show(data->label_poisk);
    }
    else
        gtk_widget_hide(data->label_poisk);

    gtk_widget_show(data->label_kolstr);

}
示例#28
0
gint dvtmcf1_r1(class dvtmcf1_r_data *data)
{
    time_t vremn;
    time(&vremn);
    char strsql[1024];
    iceb_u_str repl;
    iceb_clock sss(data->window);





    short ostkg=0;

    iceb_poldan("Отчет в килограммах",strsql,"matnast.alx",data->window);
    if(iceb_u_SRAV(strsql,"Вкл",1) == 0)
        ostkg=1;

    sprintf(strsql,"select * from Kart");
    SQLCURSOR cur,curtmp;
    SQLCURSOR cur1;
    SQL_str row,rowtmp;
    SQL_str row1;

    int kolstr;

    if((kolstr=cur.make_cursor(&bd,strsql)) < 0)
        iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);

    if(kolstr == 0)
    {
        iceb_menu_soob(gettext("Не найдено ни одной записи !"),data->window);
        sss.clear_data();
        gtk_widget_destroy(data->window);
        return(FALSE);
    }

    class iceb_tmptab tabtmp;
    const char *imatmptab= {"dvtmcf1"};

    char zaprostmp[512];
    memset(zaprostmp,'\0',sizeof(zaprostmp));

    sprintf(zaprostmp,"CREATE TEMPORARY TABLE %s (\
sh char(24) not null,\
skl int not null,\
kgm int not null,\
naim char(112) not null,\
km int not null,\
nk int not null,\
ei char(24) not null,\
cena double(15,6) not null,\
nds float(2) not null,\
mnds smallint not null,\
fas float(2) not null)",imatmptab);


    if(tabtmp.create_tab(imatmptab,zaprostmp,data->window) != 0)
    {
        sss.clear_data();
        gtk_widget_destroy(data->window);
        return(FALSE);
    }
    /*********
    char imaftmp[32];
    FILE *ff1;

    sprintf(imaftmp,"dv%d.tmp",getpid());
    if((ff1 = fopen(imaftmp,"w")) == NULL)
     {
      iceb_er_op_fil(imaftmp,"",errno,data->window);
      sss.clear_data();
      gtk_widget_destroy(data->window);
      return(FALSE);
     }
    **************/
    short dn,mn,gn;
    short dk,mk,gk;

    iceb_rsdatp(&dn,&mn,&gn,data->rk->datan.ravno(),&dk,&mk,&gk,data->rk->datak.ravno(),data->window);

    sprintf(strsql,"%s\n%s %d.%d.%d %s %d.%d.%d\n",
            gettext("Сортируем записи"),
            gettext("Период с"),
            dn,mn,gn,
            gettext("по"),
            dk,mk,gk);

    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

    int kgrm=0;
//int kolstr2=0;
    float kolstr1=0.;
    class iceb_u_str naim("");

    while(cur.read_cursor(&row) != 0)
    {
        iceb_pbar(data->bar,kolstr,++kolstr1);

        if(iceb_u_proverka(data->rk->sklad.ravno(),row[0],0,0) != 0)
            continue;

        if(iceb_u_proverka(data->rk->shet.ravno(),row[5],0,0) != 0)
            continue;

        kgrm=0;
        naim.new_plus("");
        /*Читаем код группы материалла*/
        sprintf(strsql,"select kodgr,naimat from Material where kodm=%s",row[2]);
        if(sql_readkey(&bd,strsql,&row1,&cur1) != 1)
        {
            printf("%s %s !\n",gettext("Не найден код материалла"),row[2]);
            continue;
        }
        else
        {
            kgrm=atoi(row1[0]);
            naim.new_plus(row1[1]);
        }

        if(iceb_u_proverka(data->rk->grupa.ravno(),row1[0],0,0) != 0)
            continue;

        if(provndsw(data->rk->nds.ravno(),row) != 0)
            continue;

        if(iceb_u_proverka(data->rk->kodmat.ravno(),row[2],0,0) != 0)
            continue;

//  kolstr2++;
        /************
          fprintf(ff1,"%s|%s|%d|%s|%s|%s|%s|%.10g|%.5g|%s|%s|\n",
          row[5],row[0],kgrm,naim.ravno(),row[2],row[1],row[4],atof(row[6]),atof(row[9]),
          row[3],row[10]);
        *************/
        sprintf(strsql,"insert into %s values ('%s',%s,%d,'%s',%s,%s,'%s',%.10g,%.5g,%s,%s)",
                imatmptab,
                row[5],row[0],kgrm,naim.ravno_filtr(),row[2],row[1],row[4],atof(row[6]),atof(row[9]),
                row[3],row[10]);
        iceb_sql_zapis(strsql,1,0,data->window);

    }

//fclose(ff1);


    if(data->rk->metka_sort == 0) //Сортировать счет-склад-наименование материалла.
    {
//  sprintf(strsql,"sort -o %s -t\\| -k1,2 -k2,3n -k4,5 %s",imaftmp,imaftmp);
//  sprintf(strsql,"sort -o %s -t\\| +0 -1 +1n -2 +3 -4 %s",imaftmp,imaftmp);
        sprintf(strsql,"select * from %s order by sh asc,skl asc,naim asc",imatmptab);
    }
    if(data->rk->metka_sort == 1) //Сортировать счет-склад-группа-наименование материалла.
    {
//  sprintf(strsql,"sort -o %s -t\\| -k1,2 -k2,3n -k3,4n -k4,5 %s",imaftmp,imaftmp);
//  sprintf(strsql,"sort -o %s -t\\| +0 -1 +1n -2 +2n -3 +3 -4 %s",imaftmp,imaftmp);
        sprintf(strsql,"select * from %s order by sh asc,skl asc,kgm asc,naim asc",imatmptab);
    }
//system(strsql); //Запуск сортировки
    int kolstrtmp=0;
    if((kolstrtmp=curtmp.make_cursor(&bd,strsql)) < 0)
    {
        iceb_msql_error(&bd,gettext("Ошибка создания курсора !"),strsql,data->window);
        sss.clear_data();
        gtk_widget_destroy(data->window);
        return(FALSE);
    }

    sprintf(strsql,"%s.\n",gettext("Делаем отчет"));
    iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);
    /**************
    if((ff1 = fopen(imaftmp,"r")) == NULL)
     {
      iceb_er_op_fil(imaftmp,"",errno,data->window);
      gtk_widget_destroy(data->window);
      return(FALSE);
     }
    *************/
    FILE *ff;
    char imaf[32];

    sprintf(imaf,"zag%d.lst",getpid());
    data->rk->imaf.plus(imaf);

    repl.new_plus(gettext("Оборотная ведомость движния товарно-материальных ценностей"));
    repl.plus(" (");
    repl.plus(gettext("формат"));
    repl.plus(" A3)");

    data->rk->naimf.plus(repl.ravno());

    if((ff = fopen(imaf,"w")) == NULL)
    {
        iceb_er_op_fil(imaf,"",errno,data->window);
        sss.clear_data();
        gtk_widget_destroy(data->window);
        return(FALSE);
    }
    FILE *ffuz;
    char imafuz[32];

    sprintf(imafuz,"zaguz%d.lst",getpid());
    data->rk->imaf.plus(imafuz);

    repl.new_plus(gettext("Оборотная ведомость движния товарно-материальных ценностей"));
    repl.plus(" (");
    repl.plus(gettext("формат"));
    repl.plus(" A4)");

    data->rk->naimf.plus(repl.ravno());

    if((ffuz = fopen(imafuz,"w")) == NULL)
    {
        iceb_er_op_fil(imafuz,"",errno,data->window);
        sss.clear_data();
        gtk_widget_destroy(data->window);
        return(FALSE);
    }

    /***************
    if(tipras == 1)
     {
      sprintf(imafkl2,"zagg%d.lst",getpid());

      if((ffkl2 = fopen(imafkl2,"w")) == NULL)
       ERROR1(gettext("Ошибка открытия файла"),errno,imafkl2);
      startfil(ffkl2);
     }
    else
     {
    *****************/
    char imafitog[32];
    sprintf(imafitog,"zai%d.lst",getpid());
    data->rk->imaf.plus(imafitog);

    data->rk->naimf.plus(gettext("Свод движения материальных ценностей"));
    FILE *ffitog;
    if((ffitog = fopen(imafitog,"w")) == NULL)
    {
        iceb_er_op_fil(imafitog,"",errno,data->window);
        sss.clear_data();
        gtk_widget_destroy(data->window);
        return(FALSE);
    }


    iceb_u_zagolov(gettext("Свод движения материальных ценностей"),dn,mn,gn,dk,mk,gk,organ,ffitog);


    iceb_u_zagolov(gettext("Оборотная ведомость движния товарно-материальных ценностей"),dn,mn,gn,dk,mk,gk,organ,ff);
    iceb_u_zagolov(gettext("Оборотная ведомость движния товарно-материальных ценностей"),dn,mn,gn,dk,mk,gk,organ,ffuz);


    int kst=4;

    if(data->rk->shet.getdlinna() > 1)
    {
        fprintf(ff,"%s:%s\n",gettext("Счёт"),data->rk->shet.ravno());
        fprintf(ffuz,"%s:%s\n",gettext("Счёт"),data->rk->shet.ravno());
        kst++;
    }
    if(data->rk->sklad.getdlinna() > 1)
    {
        fprintf(ff,"%s:%s\n",gettext("Склад"),data->rk->sklad.ravno());
        fprintf(ffuz,"%s:%s\n",gettext("Склад"),data->rk->sklad.ravno());
        kst++;
    }
    if(data->rk->grupa.getdlinna() > 1)
    {
        fprintf(ff,"%s:%s\n",gettext("Група"),data->rk->grupa.ravno());
        fprintf(ffuz,"%s:%s\n",gettext("Група"),data->rk->grupa.ravno());
        kst++;
    }

    if(data->rk->kodmat.getdlinna() > 1)
    {
        fprintf(ff,"%s:%s\n",gettext("Код материалла"),data->rk->kodmat.ravno());
        fprintf(ffuz,"%s:%s\n",gettext("Код материалла"),data->rk->kodmat.ravno());
        kst++;
    }
    if(data->rk->nds.getdlinna() > 1)
    {
        fprintf(ff,"%s:%s\n",gettext("НДС"),data->rk->nds.ravno());
        fprintf(ffuz,"%s:%s\n",gettext("НДС"),data->rk->nds.ravno());
        kst++;
    }
    char shbm[32];
    char naiskl[112];

    memset(shbm,'\0',sizeof(shbm));
    memset(naiskl,'\0',sizeof(naiskl));
    int skl=0;
    int sli=1;
    double itg1=0.,itg2=0.,itg3=0.,itg4=0.,itg5=0.,itg6=0.,itg7=0.,itg8=0.;
    double k1=0.,s1=0.,k2=0.,s2=0.,k3=0.,s3=0.,k4=0.,s4=0.;
    double kk1=0.,ss1=0.,kk2=0.,ss2=0.,kk3=0.,ss3=0.,kk4=0.,ss4=0.;
    double kg0=0.,kg1=0.,kg2=0.,kg3=0.;
    double kgs0=0.,kgs1=0.,kgs2=0.,kgs3=0.;
    int kgrmzp=0;
    char str[512];
    memset(str,'\0',sizeof(str));
    memset(str,'.',233);
    int mvsh=0;
    kolstr1=0;
//char str1[1000];
    class ostatok ost;
    char shb[20];
    int skl1;
    int kodm;
    int nk;
    char ei[32];
    char		mnds='\0';
    double cena,nds;
    char naimshet[512];
    char nomn[112];

//while(fgets(str1,sizeof(str1),ff1) != NULL)
// {
    while(curtmp.read_cursor(&rowtmp) != 0)
    {
        iceb_pbar(data->bar,kolstrtmp,++kolstr1);

        /********
          iceb_u_pole(str1,shb,1,'|');
          iceb_u_pole(str1,strsql,2,'|');
          skl1=atoi(strsql);
          iceb_u_pole(str1,strsql,3,'|');
          kgrm=atoi(strsql);

          iceb_u_pole(str1,naim,4,'|');
          iceb_u_pole(str1,strsql,5,'|');
          kodm=atoi(strsql);
          iceb_u_pole(str1,strsql,6,'|');
          nk=atoi(strsql);
        **************/
        strncpy(shb,rowtmp[0],sizeof(shb)-1);
        skl1=atoi(rowtmp[1]);
        kgrm=atoi(rowtmp[2]);
        naim.new_plus(rowtmp[3]);
        kodm=atoi(rowtmp[4]);
        nk=atoi(rowtmp[5]);

        /*Остаток по карточкам*/
        ostkarw(dn,mn,gn,dk,mk,gk,skl1,nk,&ost);

        if(ost.ostm[0] == 0. && ost.ostm[1] == 0. && ost.ostm[3] == 0. && fabs(ost.ostmc[3]) < 0.009)
            continue;
        /************
          iceb_u_pole(str1,ei,7,'|');
          iceb_u_pole(str1,strsql,8,'|');
          cena=atof(strsql);
          iceb_u_pole(str1,strsql,9,'|');
          nds=atof(strsql);

          iceb_u_pole(str1,strsql,10,'|');
        ***********/
        strncpy(ei,rowtmp[6],sizeof(ei)-1);
        cena=atof(rowtmp[7]);
        nds=atof(rowtmp[8]);
        strncpy(strsql,rowtmp[9],sizeof(strsql)-1);

        if(atoi(strsql) == 0)
            mnds=' ';
        if(atoi(strsql) == 1)
            mnds='+';

        if(kgrmzp != kgrm)
        {
            if(kgrmzp != 0)
            {
                if(data->rk->metka_sort == 1)
                    if(itg1 != 0. || itg2 != 0. || itg3 != 0. || itg4 != 0.)
                    {
                        itgrup(kgrmzp,itg1,itg2,itg3,itg4,itg5,itg6,itg7,itg8,ffuz,0,ff);
                        kst+=2;
                    }
            }
            itg1=itg2=itg3=itg4=itg5=itg6=itg7=itg8=0.;
            kgrmzp=kgrm;
        }

        if(iceb_u_SRAV(shb,shbm,1) != 0)
        {
            if(shbm[0] != '\0')
            {
                if(data->rk->metka_sort == 1)
                    if(itg1 != 0. || itg2 != 0. || itg3 != 0. || itg4 != 0.)
                    {
                        itgrup(kgrmzp,itg1,itg2,itg3,itg4,itg5,itg6,itg7,itg8,ffuz,0,ff);
                        itg1=itg2=itg3=itg4=itg5=itg6=itg7=itg8=0.;
                        kst+=2;
                    }
                itskl(skl,kk1,kk2,kk3,kk4,ss1,ss2,ss3,ss4,ffuz,ff,ffitog,data);
                kst+=2;
                if(ostkg == 1 && fabs((kk1+kk2+kk3+kk4) - (kg0+kg1+kg2+kg3)) > 0.0001 &&
                        kg0+kg1+kg2+kg3 > 0.0001)
                {
                    itkg(shbm,skl,kg0,kg1,kg2,kg3,1,ffuz,ff);
                    kst+=2;
                    kg0=kg1=kg2=kg3=0.;
                }
                itsh(shbm,k1,k2,k3,k4,s1,s2,s3,s4,ffuz,ff,ffitog,data);
                kst+=2;
                if(ostkg == 1 && fabs((k1+k2+k3+k4) - (kgs0+kgs1+kgs2+kgs3)) > 0.0001 &&
                        kgs0+kgs1+kgs2+kgs3 > 0.0001)
                {
                    itkg(shbm,skl,kgs0,kgs1,kgs2,kgs3,0,ffuz,ff);
                    kst+=2;
                    kgs0=kgs1=kgs2=kgs3=0.;
                }
                skl=0;
                /****************
                      if(tipras == 1)
                       {
                	itskl1(skl,kk1,kk2,kk3,kk4,ss1,ss2,ss3,ss4,str,ff,ffkl2);
                	skl=0;
                	itsh1(shbm,k1,k2,k3,k4,s1,s2,s3,s4,str,ff,ffkl2);
                	kst+=4;
                       }
                *******************/
            }
            k1=s1=k2=s2=k3=s3=k4=s4=0.;

            /*Читаем наименование счета*/
            memset(naimshet,'\0',sizeof(naimshet));
            sprintf(strsql,"select nais from Plansh where ns='%s'",shb);
            if(sql_readkey(&bd,strsql,&row,&cur1) != 1)
            {
                printf("Не найден счет %s в плане счетов !\n",shb);
                fprintf(ff,"%s %s !\n",gettext("Не найден счет"),shb);
            }
            else
                strncpy(naimshet,row[0],sizeof(naimshet)-1);

            sprintf(strsql,"\n%s %s \"%s\"\n",gettext("Счет"),shb,naimshet);
            iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

            if(kst > kol_strok_na_liste - 10)
            {
                fprintf(ff,"\f");
                fprintf(ffuz,"\f");
//      if(ffkl2 != NULL)
//         fprintf(ffkl2,"\f");
                kst=0;
                sli++;
            }


            fprintf(ff,"\n%s %s \"%s\"\n",gettext("Счет"),shb,naimshet);
            fprintf(ffuz,"\n%s %s \"%s\"\n",gettext("Счет"),shb,naimshet);
            if(ffitog != NULL)
                fprintf(ffitog,"\n%s %s \"%s\"\n",gettext("Счет"),shb,naimshet);
            kst+=2;
//    if(tipras == 0)
            gsapp(dn,mn,gn,dk,mk,gk,&sli,&kst,skl1,naiskl,ffuz,ff);
//    else
//     gsapp2(dn,mn,gn,dk,mk,gk,&sli,&kst,skl1,naiskl,str,ff,ffkl2);

            mvsh=1;

            strcpy(shbm,shb);
        }

        if(skl != skl1)
        {
            if(skl != 0)
            {
                if(data->rk->metka_sort == 1)
                    if(itg1 != 0. || itg2 != 0. || itg3 != 0. || itg4 != 0.)
                    {
                        itgrup(kgrmzp,itg1,itg2,itg3,itg4,itg5,itg6,itg7,itg8,ffuz,0,ff);
                        itg1=itg2=itg3=itg4=itg5=itg6=itg7=itg8=0.;
                        kst+=2;
                    }

                itskl(skl,kk1,kk2,kk3,kk4,ss1,ss2,ss3,ss4,ffuz,ff,ffitog,data);
                kst+=2;
                if(ostkg == 1 && fabs((kk1+kk2+kk3+kk4) - (kg0+kg1+kg2+kg3)) > 0.0001 &&
                        kg0+kg1+kg2+kg3 > 0.0001)
                {
                    itkg(shbm,skl,kg0,kg1,kg2,kg3,1,ffuz,ff);
                    kst+=2;
                    kg0=kg1=kg2=kg3=0.;
                }

//      if(tipras == 1)
//       {
//	itskl1(skl,kk1,kk2,kk3,kk4,ss1,ss2,ss3,ss4,str,ff,ffkl2);
//        kst+=2;
//       }
            }
            kk1=ss1=kk2=ss2=kk3=ss3=kk4=ss4=0.;

            /*Читаем наименование склада*/
            memset(naiskl,'\0',sizeof(naiskl));
            sprintf(strsql,"select naik from Sklad where kod='%d'",skl1);
            if(sql_readkey(&bd,strsql,&row,&cur1) != 1)
            {
                printf("Не найден склад %d в списке складов\n",skl1);
                fprintf(ff,"%s %d !\n",gettext("Не найден склад"),skl1);
            }
            strncpy(naiskl,row[0],sizeof(naiskl));

            sprintf(strsql,"%s: %d %s\n",gettext("Склад"),skl1,naiskl);
            iceb_printw(iceb_u_toutf(strsql),data->buffer,data->view);

            if(kst != 0)
                if(kst > kol_strok_na_liste - 10)
                {
                    fprintf(ff,"\f");
                    fprintf(ffuz,"\f");
//      if(ffkl2 != NULL)
//         fprintf(ffkl2,"\f");
                    kst=0;
                    sli++;
                }
            mvsh=1;
            skl=skl1;

        }
        if(mvsh == 1)
        {
//    if(tipras == 0)
//     {
            shdtmcf1(dn,mn,gn,dk,mk,gk,sli,ff,skl,naiskl,ffuz);
            kst+=6;
//     }
            /***************
                if(tipras == 1)
                 {
                  shdtmcf1k(dn,mn,gn,sli,ff,skl,naiskl,ffkl2);
                  kst+=6;
                 }
            ***************/
            mvsh=0;
        }


        /*Остаток по карточкам*/
//  ostkar(dn,mn,gn,dk,mk,gk,skl1,nk,ostg,ostm,ostgc,ostmc);

//  sprintf(nomn,"%d.%s.%d.%d",skl1,shb,kgrm,nk);
        sprintf(nomn,"%s.%d.%d",shb,kgrm,nk);


//  if(tipras == 0)
//   {
        gsapp(dn,mn,gn,dk,mk,gk,&sli,&kst,skl1,naiskl,ffuz,ff);

        fprintf(ff,"\
%4d %-*.*s %-*s %-*s %c%2.2g %14.10g %15.10g %15.2f %15.10g %15.2f %15.10g %15.2f \
%15.10g %15.2f\n",
                kodm,
                iceb_u_kolbait(40,naim.ravno()),iceb_u_kolbait(40,naim.ravno()),naim.ravno(),
                iceb_u_kolbait(13,nomn),nomn,
                iceb_u_kolbait(10,ei),ei,
                mnds,nds,cena,
                ost.ostm[0],ost.ostmc[0],ost.ostm[1],ost.ostmc[1],ost.ostm[2],ost.ostmc[2],ost.ostm[3],ost.ostmc[3]);

        fprintf(ffuz,"\
%4d %-*.*s %-*s %-*s %c%2.2g %7s %8.8g %8.2f %8.8g %8.2f %8.8g %8.2f \
%8.8g %8.2f\n",
                kodm,
                iceb_u_kolbait(23,naim.ravno()),iceb_u_kolbait(23,naim.ravno()),naim.ravno(),
                iceb_u_kolbait(13,nomn),nomn,
                iceb_u_kolbait(3,ei),ei,
                mnds,nds,iceb_prcn(cena),
                ost.ostm[0],ost.ostmc[0],ost.ostm[1],ost.ostmc[1],ost.ostm[2],ost.ostmc[2],ost.ostm[3],ost.ostmc[3]);


        if(ostkg == 1)
        {
            double ost1=0.,ost2=0.,ost3=0.,ost4=0.;
            double fas=0.;
//       iceb_u_pole(str1,strsql,11,'|');
//       fas=atof(strsql);
            fas=atof(rowtmp[10]);
            if(fas > 0.0000001)
            {
                ost1=ost.ostm[0]*fas;
                ost2=ost.ostm[1]*fas;
                ost3=ost.ostm[2]*fas;
                ost4=ost.ostm[3]*fas;
                kg0+=ost1;
                kg1+=ost2;
                kg2+=ost3;
                kg3+=ost4;
                kgs0+=ost1;
                kgs1+=ost2;
                kgs2+=ost3;
                kgs3+=ost4;

                gsapp(dn,mn,gn,dk,mk,gk,&sli,&kst,skl1,naiskl,ffuz,ff);

                fprintf(ff,"\
%4s %-40.40s %-13s %-10s %3s %14s %15.10g %15s %15.10g %15s %15.10g %15s \
%15.10g %15s\n"," "," "," "," "," "," ",
                        ost1," ",ost2," ",ost3," ",ost4," ");

                fprintf(ffuz,"\
%4s %-23.23s %-13s %-3s %3s %7s %8.8g %8s %8.8g %8s %8.8g %8s \
%8.8g %8s\n"," "," "," "," "," "," ",
                        ost1," ",ost2," ",ost3," ",ost4," ");

            }
            else if(iceb_u_SRAV(ei,"Кг",0) == 0 || iceb_u_SRAV(ei,"кг",0) == 0 ||