procedure TSALES_RECORD_AUDIT_BETA_FORMDOC.DataSetBrokerSALES_RECORD_AUDIT_DTDataChange(Sender: TObject; Field: TDataField);
VAR
CommonBus:String; //商业/终端CODE
PutStatus:integer; //备案登记状态
ContextCurrent: Business.Model.TContextCurrent;
Storedproc:TStoredProc;
N_RESULT:Integer;
lDataSet:TCloneDataSet;
begin
CommonBus:=SELF.DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_CODE').AsString;
PutStatus:=SELF.DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('PUT_ON_STATUS').AsInteger;
lDataSet:=TCloneDataSet.Create(nil);
lDataSet.CloneCursor(self.DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet,false,true,false);
with DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet do
if Active then
begin
if ((FUNCBROKER.Func.ID = 'SALES_RECORD_CHECK_BETA_FUNC') AND (FieldByName('STATUS').AsString = '未审核')) OR (FUNCBROKER.Func.ID = 'SALES_RECORD_AUDIT_BETA_FUNC') then
begin
if (Field <> nil) AND (Field.FieldName = 'MONTH_IN_QTY') then
begin
if not ((FieldByName('SUM_BUSS_TYPE').AsString = '一级') OR (FieldByName('SUM_BUSS_TYPE').AsString = '二级') OR (FieldByName('SUM_BUSS_TYPE').AsString = '三级') OR (FieldByName('SUM_BUSS_TYPE').AsString = '四级')) AND (FieldByName('MONTH_IN_QTY').AsInteger <> 0) then
begin
Cancel;
Dialogs.ShowMessage('终端不能录 "进" !');
SysUtils.Abort;
end;
end;
if (Field <> nil) AND ((Field.FieldName = 'MONTH_IN_QTY') OR (Field.FieldName = 'MONTH_OUT_QTY')) then
begin
if (FieldByName('MONTH_IN_QTY').AsInteger <> 0) AND (FieldByName('MONTH_OUT_QTY').AsInteger <> 0) then
begin
Cancel;
Dialogs.ShowMessage('不能同时录 "进" 和 "销" !');
SysUtils.Abort;
end;
end;
if (Field <> nil) AND (Field.FieldName = 'PIECE_NUM') then
begin
if not ( ((Length(FieldByName('PIECE_NUM').AsString)=6) OR (Length(FieldByName('PIECE_NUM').AsString)=7)) AND (Variants.VarToStr(StringUtils.Copy(FieldByName('PIECE_NUM').AsString,0,1))='0') ) then
begin
Cancel;
Dialogs.ShowMessage('批号只能6-7位,且第一位必须为0 !');
SysUtils.Abort;
end;
end;
if (Field <> nil) AND ( (Field.FieldName = 'PROD_NO') OR (Field.FieldName = 'MONTH_IN_QTY')OR (Field.FieldName='PUT_ON_STATUS') OR (Field.FieldName = 'MONTH_OUT_QTY') OR (Field.FieldName = 'PIECE_NUM') OR (Field.FieldName = 'SALE_DATE') OR (Field.FieldName = 'CUST_CODE') OR (Field.FieldName = 'SUM_BUSS_CODE') ) then
begin
Edit;
ContextCurrent := Business.Model.TContextCurrent.Create(Self.Context);
FieldByName('MODIFY_NAME').AsString := ContextCurrent.Operator.DisplayName;
FieldByName('MODIFY_DATE').AsDateTime := Business.Data.SysSrv.SysService.Time;
end;
if (Field<> nil) AND (Field.FieldName='PUT_ON_STATUS') then
begin
if jsdialogs.ConfirmBox('你确定更改备案标记吗?','提示',1) then
begin
if (not IsEmpty) then
begin
sQuery.Close;
sQuery.CommandText:='SELECT COUNT(*) AS PUT_ON_COUNT FROM PUT_ON_RECORDS WHERE PUT_ON_RECORDS.TYPE=20 AND PUT_ON_RECORDS.PUT_ON_CODE ='+CommonBus;
sQuery.Open;
if sQuery.FieldByName('PUT_ON_COUNT').AsInteger >0 then
begin
if Business.System.Variants.VarToStr(Field.Value) ='0' then
begin
sQuery.Close;
sQuery.CommandText:='UPDATE PUT_ON_RECORDS SET STATUS=0 WHERE TYPE=20 AND PUT_ON_CODE='+CommonBus;
sQuery.Execute;
end
else if Business.System.Variants.VarToStr(Field.Value) ='1' then
begin
sQuery.Close;
sQuery.CommandText:='UPDATE PUT_ON_RECORDS SET STATUS=1 WHERE TYPE=20 AND PUT_ON_CODE='+CommonBus;
sQuery.Execute;
end;
end
else
begin
if Business.System.Variants.VarToStr(Field.Value) ='0' then
begin
sQuery.Close;
sQuery.CommandText:='INSERT INTO PUT_ON_RECORDS(PUT_ON_RECORDS.PRIMARY_ID,PUT_ON_RECORDS.STATUS,PUT_ON_RECORDS.TYPE,PUT_ON_RECORDS.DISTRICT_CODE,'+
'PUT_ON_RECORDS.AREA_CODE,PUT_ON_RECORDS.SUB_AREA_CODE,PUT_ON_RECORDS.PUT_ON_CODE,PUT_ON_RECORDS.PUT_ON_NAME) VALUES(SEQ_PUT_ON_RECORDS.NEXTVAL,0,20,'
+FieldByName('DISTRICT_CODE').AsString+','+FieldByName('AREA_CODE').AsString+','
+FieldByName('SUB_AREA_CODE').AsString+','+CommonBus+','''
+FieldByName('SUM_BUSS_NAME').AsString+''') ';
sQuery.Execute;
end
else if Business.System.Variants.VarToStr(Field.Value) ='1' then
begin
sQuery.Close;
sQuery.CommandText:='INSERT INTO PUT_ON_RECORDS(PUT_ON_RECORDS.PRIMARY_ID,PUT_ON_RECORDS.STATUS,PUT_ON_RECORDS.TYPE,PUT_ON_RECORDS.DISTRICT_CODE,'+
'PUT_ON_RECORDS.AREA_CODE,PUT_ON_RECORDS.SUB_AREA_CODE,PUT_ON_RECORDS.PUT_ON_CODE,PUT_ON_RECORDS.PUT_ON_NAME) VALUES(SEQ_PUT_ON_RECORDS.NEXTVAL,0,20,'
+FieldByName('DISTRICT_CODE').AsString+','+FieldByName('AREA_CODE').AsString+','
+FieldByName('SUB_AREA_CODE').AsString+','+CommonBus+','''
+FieldByName('SUM_BUSS_NAME').AsString+''') ';
sQuery.Execute;
end;
end;
try
lDataSet.Filtered:=true;
lDataSet.Filter:='SUM_BUSS_CODE ='+CommonBus;
lDataSet.First;
WHILE NOT lDataSet.Eof DO
BEGIN
lDataSet.Edit;
lDataSet.FieldByName('PUT_ON_STATUS').AsInteger:=PutStatus;
lDataSet.Next;
END;
First;
finally
lDataSet.Free;
end;
end;
end;
end;
if (Field <> nil) AND (Field.FieldName = 'SUM_BUSS_TYPE') then
begin
if (Business.System.Variants.VarToStr(DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_TYPE').OldValue) <> Business.System.Variants.VarToStr(DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_TYPE').Value)) and (DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_TYPE').AsString = '四级') then
begin
if Jsdialogs.ConfirmBox('确定要将:” '+DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_NAME').AsString+'“ 的级别改成 “'+DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_TYPE').AsString+'” 吗?','提示',1) then
begin
ContextCurrent := Business.Model.TContextCurrent.Create(Self.Context);
StoredProc := TStoredProc.Create(nil);
try
N_RESULT := 0;
StoredProc.ConnectionString := 'DATABASEURL=Biz:\PUBLIC_DB\BFOA_DB.DATABASE';
StoredProc.StoredProcName := 'SALES_RECORD_IMPORT_PROC';
StoredProc.Params.ParamByName('P_FILLER_CODE').Value := Sysutils.StrToInt(ContextCurrent.Operator.ID);
StoredProc.Params.ParamByName('P_DISTRICT_CODE').Value := DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('DISTRICT_CODE').AsInteger;
StoredProc.Params.ParamByName('P_AREA_CODE').Value := DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('AREA_CODE').AsInteger;
StoredProc.Params.ParamByName('P_CUST_CODE').Value := 0;
StoredProc.Params.ParamByName('P_SALE_NO').Value := DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SALE_NO').AsString;
StoredProc.Params.ParamByName('P_SUM_BUSS_TYPE').Value := DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_TYPE').AsString;
StoredProc.Params.ParamByName('P_TYPE').Value := 4;
Storedproc.Execute;
N_RESULT := StoredProc.Params.ParamByName('N_RESULT').AsInteger;
Dialogs.ShowMessage(StoredProc.Params.ParamByName('R_RESULT').AsString);
if N_RESULT = 0 then
Cancel
else
begin
DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.Edit;
DataSetBrokerSALES_RECORD_AUDIT_DT.DataSet.FieldByName('SUM_BUSS_CODE').AsInteger := N_RESULT;
END;
finally
StoredProc.Free;
ContextCurrent.Free;
if N_RESULT = 0 then
Cancel;
end;
end
else
Cancel;
end;
end;
end
else
Cancel;
end;
end; |