⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 maint.pas

📁 超市管理系统:完成日常销售任务
💻 PAS
📖 第 1 页 / 共 4 页
字号:
 BGCOT := INTTOSTR(    QUERY1.FieldByName('BGCOT').AsINTEGER);
 BMENO := TRIM(        QUERY1.FieldByName('BMENO').AsString);
 BNENO := TRIM(        QUERY1.FieldByName('BNENO').AsString);
 PAIDE := TRIM(        QUERY1.FieldByName('PAIDE').AsString);
 PAIPN := BOOLEANTOSTR(QUERY1.FieldByName('PAIPN').AsBOOLEAN);
 PAIVO := TRIM(        QUERY1.FieldByName('PAIVO').AsString);
 PADAT := DATETOSTR(   QUERY1.FieldByName('PADAT').AsDATETIME);
 PATME := TRIM(        QUERY1.FieldByName('PATME').AsString);
 PACNO := TRIM(        QUERY1.FieldByName('PACNO').AsString);
 PACDT := DATETOSTR(   QUERY1.FieldByName('PACDT').AsDATETIME);
 PACNA := TRIM(        QUERY1.FieldByName('PACNA').AsString);
 PACKD := TRIM(        QUERY1.FieldByName('PACKD').AsString);
 PACIV := TRIM(        QUERY1.FieldByName('PACIV').AsString);
 PABCK := BOOLEANTOSTR(QUERY1.FieldByName('PABCK').AsBOOLEAN);
 PABCN := BOOLEANTOSTR(QUERY1.FieldByName('PABCN').AsBOOLEAN);
 PACPD := BOOLEANTOSTR(QUERY1.FieldByName('PACPD').AsBOOLEAN);
 PAWEK := TRIM(        QUERY1.FieldByName('PAWEK').AsString);

 IF PUERY.EOF = FALSE THEN  //UPDATE    //上次已传, 只更新变动资料
    BEGIN
{    //更新 SERVER POS PAENO
    MEMO1.Lines.Add('上载销售资料 变动资料 -'+QUERY1.FieldByName('PAENO').AsString);
    PINS.SQL.CLEAR;
    PINS.SQL.ADD('UPDATE POSA');
    PINS.SQL.ADD('SET');
    PINS.SQL.ADD(' PABCK =  '+PABCK+' ,');
    PINS.SQL.ADD(' PABCN = 1           ');
    PINS.SQL.ADD(' WHERE PAENO = '''+QUERY1.FieldByName('PAENO').AsString+'''');
    try PINS.ExecSQL;  except SHOWMESSAGE('POSA 变动资料 无法更新!');   end;

    //更新 LOCAL POS PAENO
    QINS.SQL.CLEAR;
    QINS.SQL.ADD('UPDATE POSA');
    QINS.SQL.ADD('SET');
    QINS.SQL.ADD(' PABCN = 1           ');
    QINS.SQL.ADD(' WHERE PAENO = '''+QUERY1.FieldByName('PAENO').AsString+'''');
    try QINS.ExecSQL;  except SHOWMESSAGE('POSA PAENO 无法更新!');   end;
 }   END;

 IF PUERY.EOF = TRUE  THEN  //INSERT
    BEGIN
    MEMO1.Lines.Add('上载销售资料 '+QUERY1.FieldByName('PAENO').AsString);
    //抓取销售编号
    PAENO_S := DBTABLEFINDMAXCNT('MAINP','POSA','PAENO',6,1);

    //加入出货资料
    PINS.SQL.Clear;
    PINS.SQL.ADD('INSERT INTO POSA');
    PINS.SQL.ADD('( PAENO, BGCOT, BMENO, BNENO, ');
    PINS.SQL.ADD('  PAIDE, PAIPN, PAIVO, PADAT, PATME, RBPST, ');
    PINS.SQL.ADD('  PACNO, PACDT, PACNA, PACKD, PACIV, ');
    PINS.SQL.ADD('  PABCK, PABCN, PACPD, PAWEK )');
    PINS.SQL.ADD('VALUES ');
    PINS.SQL.ADD('('''+PAENO_S+''',');//销售编号
    PINS.SQL.ADD('   '+BGCOT  +'  ,');//产品总价
    PINS.SQL.ADD(' '''+BMENO  +''',');//会员编号
    PINS.SQL.ADD(' '''+BNENO  +''',');//员工编号
    PINS.SQL.ADD(' '''+PAIDE  +''',');//柜台号码
    PINS.SQL.ADD('   '+PAIPN  +'  ,');//是否打印发票
    PINS.SQL.ADD(' '''+PAIVO  +''',');//发票号码
    PINS.SQL.ADD('   '+P_DT+PADAT +P_DT+' ,');//销售日期
    PINS.SQL.ADD(' '''+PATME +''',');//销售时间
    PINS.SQL.ADD(' '''+RBPST  +''', '); //销售仓库
    PINS.SQL.ADD(' '''+PACNO  +''',');//信用卡号
    PINS.SQL.ADD('   '+P_DT+PACDT  +P_DT +',');//信用卡到期日
    PINS.SQL.ADD(' '''+PACNA  +''',');//信用卡人姓名
    PINS.SQL.ADD(' '''+PACKD  +''',');//信用卡类别
    PINS.SQL.ADD(' '''+PACIV  +''',');//统一编号
    PINS.SQL.ADD('   '+PABCK  +'  ,');//
    PINS.SQL.ADD('   0            ,');// PABCN
    PINS.SQL.ADD('   '+PACPD  +'  ,');//刷卡或付现
    PINS.SQL.ADD(' '''+PAWEK  +''' ');//星期几
    PINS.SQL.ADD(' )');
    TRY
    //SHOWMESSAGE(PINS.SQL.TEXT);
     PINS.EXECSQL; MEMO1.Lines.Add('销售资料 '+PUERY.FieldByName('PAENO').AsString+'已上载');
    EXCEPT         MEMO1.Lines.Add('销售资料 '+PUERY.FieldByName('PAENO').AsString+'上载失败');    END;

    //更新 LOCAL POS PAENO
    QINS.SQL.CLEAR;
    QINS.SQL.ADD('UPDATE POSA');
    QINS.SQL.ADD('SET');
    QINS.SQL.ADD(' PAENO = '+PAENO_S+',');
    QINS.SQL.ADD(' PABCN = 1           ');
    QINS.SQL.ADD(' WHERE PAENO = '''+QUERY1.FieldByName('PAENO').AsString+'''');
    try QINS.ExecSQL;
    except SHOWMESSAGE('POSA PAENO 无法更新!');   end;
    
    //更新会员消费
    IF TRIM(BMENO) <> '' THEN
       BEGIN
       BMBPO := STRTOINTDEF(UNSETREAD('SYSSET','SET_BMBPO'),1); //会员点数
       IF BMBPO <=0 THEN BMBPO := 1;
       PINS.SQL.Clear;
       PINS.SQL.ADD('UPDATE BMEM');
       PINS.SQL.ADD('SET');
       PINS.SQL.ADD(' BMBYR = BMBYR + '+BGCOT+',');
       PINS.SQL.ADD(' BMBTO = BMBTO + '+BGCOT+',');
       PINS.SQL.ADD(' BMBPO = BMBPO + '+BGCOT+'/'+INTTOSTR(BMBPO)+',');
       PINS.SQL.ADD(' BMBTM = BMBTM + 1 ,');
       PINS.SQL.ADD(' BMBDT = '+P_DT+ DATETOSTR(DATE) +P_DT);
       PINS.SQL.ADD(' WHERE BMENO = '''+BMENO+'''');
       try PINS.ExecSQL;
       except SHOWMESSAGE('BMEM 无法更新!');   end;
       END;

    //更新业务业绩
    IF TRIM(BNENO) <> '' THEN
       BEGIN
       PINS.SQL.Clear;
       PINS.SQL.ADD('UPDATE BSAL');
       PINS.SQL.ADD('SET');
       PINS.SQL.ADD(' BASYR = BASYR + '+BGCOT+',');
       PINS.SQL.ADD(' BASTO = BASTO + '+BGCOT+',');
       PINS.SQL.ADD(' BASDT = '+P_DT+ DATETOSTR(DATE) +P_DT);
       PINS.SQL.ADD(' WHERE BAENO = '''+BNENO+'''');
       try PINS.ExecSQL;
       except SHOWMESSAGE('BSAL 无法更新!');   end;
       END;




    //存入数据库
    MEMO1.Lines.Add('上传销售资料 - 销货项目 ----------');
    QUERY2.SQL.CLEAR;  //LOCAL===============================
    QUERY2.SQL.ADD('SELECT * FROM POSB');
    QUERY2.SQL.ADD('WHERE PAENO = '''+QUERY1.FieldByName('PAENO').AsString+'''');
    QUERY2.Close;
    QUERY2.OPEN;

    QUERY2.FIRST;
    WHILE NOT QUERY2.EOF DO
     BEGIN
     MEMO1.Lines.Add('上传销售资料 - '+QUERY2.FieldByName('BGENO').AsString);
     PUERY.SQL.CLEAR;      //SERVER------------------------
     PUERY.SQL.ADD('SELECT * FROM POSB');
     PUERY.SQL.ADD('WHERE PAENO = '''+QUERY1.FieldByName('PAENO').AsString+'''');
     PUERY.SQL.ADD('  AND PBENO = '''+QUERY2.FieldByName('PBENO').AsString+'''');
     PUERY.Close;
     PUERY.OPEN;

     PBENO := DBTABLEFINDMAXITM('MAINP','POSB','PAENO',PAENO_S,'PBENO',3,1);//销售ITEM
     BGENO := QUERY2.FieldByName('BGENO').AsString; //产品条形码
     BGCNT := QUERY2.FieldByName('BGCNT').AsString; //产品数量
     BGCOS := QUERY2.FieldByName('BGCOS').AsString; //产品单价
     BGCOT := QUERY2.FieldByName('BGCOT').AsString; //产品总价
     BGKIN := DB_QUERY_FIND_VALUE('BGDS','BGENO',BGENO,'BGKIN');

     //加入出货资料
     PINS.SQL.Clear;
     PINS.SQL.ADD('INSERT INTO POSB');
     PINS.SQL.ADD('( PAENO, BGENO, BGCNT, ');
     PINS.SQL.ADD('  BGCOS, BGCOT, RBCNT, ');
     PINS.SQL.ADD('  PBENO )');
     PINS.SQL.ADD('VALUES ');
     PINS.SQL.ADD('('''+PAENO_S+''',');//销售编号
     PINS.SQL.ADD(' '''+BGENO+''',');//产品条形码
     PINS.SQL.ADD('   '+BGCNT+'  ,');//产品数量
     PINS.SQL.ADD('   '+BGCOS+'  ,');//产品单价
     PINS.SQL.ADD('   '+BGCOT+'  ,');//产品总价
     PINS.SQL.ADD(' '''+RBCNT+''',');//仓库删前存量
     PINS.SQL.ADD(' '''+PBENO+''' ');//销售ITEM
     PINS.SQL.ADD(' )');
     try PINS.ExecSQL;
     except SHOWMESSAGE('POSB 无法新增!');   end;

     //更新 LOCAL POS PAENO
     QINS.SQL.CLEAR;
     QINS.SQL.ADD('UPDATE POSB');
     QINS.SQL.ADD('SET');
     QINS.SQL.ADD(' PAENO = '''+PAENO_S+''' ');
     QINS.SQL.ADD(' WHERE PAENO = '''+QUERY1.FieldByName('PAENO').AsString+'''');
     try QINS.ExecSQL;
     except SHOWMESSAGE('POSB PAENO 无法更新!');   end;
    

     //检查库存量
     RBCNT := '-999';
     PUERY.SQL.Clear;
     PUERY.SQL.Add('SELECT RBCNT FROM RBRN');
     PUERY.SQL.Add(' WHERE RBPST = '''+_SYS_RBPST+'''');
     PUERY.SQL.Add('   AND BGENO = '''+BGENO+'''');
     PUERY.Close;  PUERY.Open;
     IF QUERY1.Eof = FALSE THEN RBCNT := PUERY.FieldByName('RBCNT').AsSTRING;
     IF STRTOINTDEF(RBCNT,-999) < -998 THEN RBCNT := '-999';

     //更新库存资料 -分类999不更新库存
     IF BGKIN <> '999' THEN
        BEGIN
        FMMAIND.QUPD.SQL.Clear;
        FMMAIND.QUPD.SQL.ADD('UPDATE RBRN');
        FMMAIND.QUPD.SQL.ADD('SET');
        FMMAIND.QUPD.SQL.ADD(' RBCNT = RBCNT - '+BGCNT+' ,');
        FMMAIND.QUPD.SQL.ADD(' RBDTU = '+P_DT+ DATETOSTR(DATE)+P_DT+', ');
        FMMAIND.QUPD.SQL.ADD(' RBTMU = '''+TIME_GET_24H(TIME)+''' ');
        FMMAIND.QUPD.SQL.ADD(' WHERE BGENO = '''+BGENO+'''');
        FMMAIND.QUPD.SQL.ADD('   AND RBPST = '''+_SYS_RBPST+'''');
        try FMMAIND.QUPD.ExecSQL; except SHOWMESSAGE('RBRN 无法更新!');   end;
        END;

    QUERY2.NEXT;
    END;  // WHILE DO

  END;  // IF QUERY = TRUE

 QUERY1.Next;
 Gauge.AddProgress(1);
 END;   // WHILE DO






{  //分析资料======================================
  IF FMPOSA.AS_SAVE = TRUE THEN
     BEGIN
     T_BGCNT  := INTTOSTR(STRTOINTDEF(T_BGCNT ,0));
     T_BGCOS  := INTTOSTR(STRTOINTDEF(T_BGCOS ,0));
     AS_ASQC2 := INTTOSTR(STRTOINTDEF(AS_ASQC2,0));
     AS_BMBTH := INTTOSTR(STRTOINTDEF(AS_BMBTH,0));

     QINS.SQL.CLEAR;
     QINS.SQL.ADD('INSERT INTO ACUS');
     QINS.SQL.ADD('(PAENO,RBPST,BNENO,BGENO,BGCNT,BGCOS,');
     QINS.SQL.ADD(' ASQA1,ASQA2,ASQA3,ASQA4,ASQA5,');
     QINS.SQL.ADD(' ASQB1,ASQB2,ASQB3,ASQB4,ASQB5,');
     QINS.SQL.ADD(' ASQC1,ASQC2,BMNAM,BMBTH,BMSEX,PADAT )');
     QINS.SQL.ADD('VALUES (');
     QINS.SQL.ADD(''''+T_PAENO+''',');         //销售编号
     QINS.SQL.ADD(''''+T_RBPST+''',');         //出货仓库
     QINS.SQL.ADD(''''+_USER_ID+''',');        //员工编号
     QINS.SQL.ADD(''''+T_BGENO+''',');         //产品条形码
     QINS.SQL.ADD('  '+T_BGCNT+'  ,');         //产品数量
     QINS.SQL.ADD('  '+T_BGCOS+'  ,');         //产品单价
     QINS.SQL.ADD(''''+AS_ASQA1+''',');        //状况1
     QINS.SQL.ADD(''''+AS_ASQA2+''',');        //状况2
     QINS.SQL.ADD(''''+AS_ASQA3+''',');        //状况3
     QINS.SQL.ADD(''''+AS_ASQA4+''',');        //状况4
     QINS.SQL.ADD(''''+AS_ASQA5+''',');        //状况5
     IF AS_ASQB1 = TRUE  THEN QINS.SQL.ADD('1,') ELSE QINS.SQL.ADD('0,');  //是否1
     IF AS_ASQB2 = TRUE  THEN QINS.SQL.ADD('1,') ELSE QINS.SQL.ADD('0,');  //是否2
     IF AS_ASQB3 = TRUE  THEN QINS.SQL.ADD('1,') ELSE QINS.SQL.ADD('0,');  //是否3
     IF AS_ASQB4 = TRUE  THEN QINS.SQL.ADD('1,') ELSE QINS.SQL.ADD('0,');  //是否4
     IF AS_ASQB5 = TRUE  THEN QINS.SQL.ADD('1,') ELSE QINS.SQL.ADD('0,');  //是否5
     QINS.SQL.ADD(''''+AS_ASQC1+''',');        //星期几
     QINS.SQL.ADD('  '+AS_ASQC2+'  ,');        //同行人数
     QINS.SQL.ADD(''''+AS_BMNAM+''',');        //中文姓名
     QINS.SQL.ADD('  '+AS_BMBTH+'  ,');        //年  龄
     QINS.SQL.ADD(''''+AS_BMSEX+''',');        //性  别
     QINS.SQL.ADD(' '+_DT+DATETOSTR(FMMAIN.T_INSERT_DATE)+_DT+' )');        //销售日期
       showmessage(QINS.SQL.text);
     try QINS.ExecSQL;
     except SHOWMESSAGE('ACUS 无法新增!');   end;

     END;


 }


Gauge.Progress := 0;
END;

PROCEDURE TFMMAINT.INS_POSA_PABCK;
BEGIN
{
MEMO1.Lines.Add('上传销售资料');
QUERY1.SQL.CLEAR;  //LOCAL===============================
QUERY1.SQL.ADD('SELECT * FROM POSA');
QUERY1.SQL.ADD('WHERE PABCK = 1 ');
QUERY1.Close;
QUERY1.OPEN;
Gauge.MaxValue := QUERY1.RecordCount;

QUERY1.FIRST;
WHILE NOT QUERY1.EOF DO
 BEGIN
 PUERY.SQL.CLEAR;      //SERVER------------------------
 PUERY.SQL.ADD('SELECT * FROM POSA');
 PUERY.SQL.ADD('WHERE PAENO = '''+QUERY1.FieldByName('PAENO').AsString+'''');
 PUERY.SQL.ADD('  AND PABCK = 0 ');
 PUERY.Close;
 PUERY.OPEN;
 IF PUERY.EOF = FALSE THEN  //UPDATE    //上次已传, 只更新变动资料
    BEGIN
    //更新 SERVER POS PAENO
    MEMO1.Lines.Add('上载销售资料 变动资料 -'+QUERY1.FieldByName('PAENO').AsString);
    PINS.SQL.CLEAR;
    PINS.SQL.ADD('UPDATE POSA');
    PINS.SQL.ADD('SET');
    PINS.SQL.ADD(' PABCK =  '+PABCK+' ,');
    PINS.SQL.ADD(' PABCN = 1           ');
    PINS.SQL.ADD(' WHERE PAENO = '''+QUERY1.FieldByName('PAENO').AsString+'''');
    try PINS.ExecSQL;  except SHOWMESSAGE('POSA 变动资料 无法更新!');   end;

    //更新 LOCAL POS PAENO
    QINS.SQL.CLEAR;
    QINS.SQL.ADD('UPDATE POSA');
    QINS.SQL.ADD('SET');
    QINS.SQL.ADD(' PABCN = 1           ');
    QINS.SQL.ADD(' WHERE PAENO = '''+QUERY1.FieldByName('PAENO').AsString+'''');
    try QINS.ExecSQL;  except SHOWMESSAGE('POSA PAENO 无法更新!');   end;
    END;

 IF PUERY.EOF = TRUE  THEN  //INSERT
    BEGIN
    MEMO1.Lines.Add('上载销售资料 '+QUERY1.FieldByName('PAENO').AsString);
    //抓取销售编号
    PAENO_S := DBTABLEFINDMAXCNT('MAINP','POSA','PAENO',6,1);

    //加入出货资料
    PINS.SQL.Clear;
    PINS.SQL.ADD('INSERT INTO POSA');
    PINS.SQL.ADD('( PAENO, BGCOT, BMENO, BNENO, ');
    PINS.SQL.ADD('  PAIDE, PAIPN, PAIVO, PADAT, PATME, RBPST, ');
    PINS.SQL.ADD('  PACNO, PACDT, PACNA, PACKD, PACIV, ');
    PINS.SQL.ADD('  PABCK, PABCN, PACPD, PAWEK )');
    PINS.SQL.ADD('VALUES ');
    PINS.SQL.ADD('('''+PAENO_S+''',');//销售编号
    PINS.SQL.ADD('   '+BGCOT  +'  ,');//产品总价
    PINS.SQL.ADD(' '''+BMENO  +''',');//会员编号
    PINS.SQL.ADD(' '''+BNENO  +''',');//员工编号
    PINS.SQL.ADD(' '''+PAIDE  +''',');//柜台号码

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -