unit SupVision;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, Wwquery, Wwdatsrc, Grids, Wwdbigrd, Wwdbgrid,
StdCtrls, wwdbdatetimepicker, wwdblook, Buttons, ExtCtrls , ComCtrls;
type
TfrmSupVision = class(TForm)
DS_supvision: TwwDataSource;
query_supvision: TwwQuery;
UpdateSQL1: TUpdateSQL;
Combo_Clientes: TwwDBLookupCombo;
query_combo: TwwQuery;
ComboBox1: TComboBox;
query_comboname: TStringField;
query_comboaccountnum: TStringField;
Label1: TLabel;
SpeedButton2: TSpeedButton;
Edit1: TEdit;
Label3: TLabel;
Shape7: TShape;
Shape1: TShape;
Shape2: TShape;
BtnImprimir: TBitBtn;
Label5: TLabel;
wwDBGrid1: TwwDBGrid;
procedure Combo_ClientesChange(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
procedure ComboBox1Click(Sender: TObject);
procedure BtnImprimirClick(Sender: TObject);
procedure Edit1Click(Sender: TObject);
procedure wwDBGrid1TitleButtonClick(Sender: TObject;
AFieldName: String);
procedure wwDBGrid1FieldChanged(Sender: TObject; Field: TField);
private
public
end;
var
frmSupVision: TfrmSupVision;
Field_Sorted, Sort_Type, SQL_Base: string;
CodiClient,cadena2: String; FlagE : integer;
implementation
uses ModuloDatos,UnidadesPedidoVenta, PrintPedidosSupervisados;
{$R *.DFM}
function tornarMaxID(): integer;
var cadenaSQLID : string;
query_maxID : TQuery;
begin
query_maxID := TQuery.Create(nil);
query_maxID.DatabaseName := Modulo_Datos.NOG_Comer.DatabaseName;
cadenaSQLID := 'SQLLLLLLLLLLLLLLL' ;
query_maxID.SQL.Clear;
query_maxID.close;
query_maxID.SQL.Add(cadenaSQLID);
query_maxID.open;
Result := query_maxID.Fields[0].Asinteger;
query_maxID.Close;
FreeAndNil(query_maxID);
end;
procedure TfrmSupVision.Combo_ClientesChange(Sender: TObject);
begin
if FlagE = 0 then begin
CodiClient := Combo_Clientes.Lookuptable.FieldByName('accountnum').asstring;
end;
SQL_Base := 'SQL';
if (IntToStr(length(Combo_clientes.text)) > '0') then
SQL_Base := SQL_Base + ' AND A.accountnum = ' + QuotedStr(CodiClient);
if (combobox1.text <> '') then
if combobox1.text = 'SI' then begin
SQL_Base := SQL_Base + ' and Check_supervisado = ' + QuotedStr('S');
end
else if combobox1.text = 'NO' then begin
SQL_Base := SQL_Base + ' and Check_supervisado = ' + QuotedStr('N');
end;
if Edit1.text <> '' then
SQL_Base := SQL_Base + ' SQL XXXXXXXXXXXXX';
try
query_supvision.close;
query_supvision.SQL.Clear;
query_supvision.SQL.Add(SQL_Base);
query_supvision.open;
except
showmessage('Error al cargar los clientes');
end;
FlagE := 0;
end;
procedure TfrmSupVision.SpeedButton2Click(Sender: TObject);
begin
close;
end;
procedure TfrmSupVision.FormClose(Sender: TObject; var Action: TCloseAction);
begin
frmSupVision := nil;
Action := caFree;
end;
procedure TfrmSupVision.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_Return then
Combo_ClientesChange (Sender);
end;
procedure TfrmSupVision.FormCreate(Sender: TObject);
begin
Combo_ClientesChange (Sender);
query_combo.Open;
FlagE := 0;
end;
procedure TfrmSupVision.ComboBox1Click(Sender: TObject);
begin
FlagE := 1;
end;
procedure TfrmSupVision.BtnImprimirClick(Sender: TObject);
begin
Application.CreateForm (TfrmPrintPedidosSupervisados, frmPrintPedidosSupervisados);
frmPrintPedidosSupervisados.ShowModal;
end;
procedure TfrmSupVision.Edit1Click(Sender: TObject);
begin
FlagE := 1;
end;
procedure TfrmSupVision.wwDBGrid1TitleButtonClick(Sender: TObject;
AFieldName: String);
begin
Field_Sorted := AFieldName;
if Sort_Type = 'ASC' then
Sort_Type := 'DESC'
else
Sort_Type := 'ASC';
if Field_Sorted = 'ALB_Fecha' then
cadena2 := SQL_Base + ' ORDER BY A.' + AFieldName + ' ' + Sort_Type
else if Field_Sorted = 'name' then
cadena2 := SQL_Base + ' ORDER BY C.' + AFieldName + ' ' + Sort_Type
else
cadena2 := SQL_Base + ' ORDER BY LA.' + AFieldName + ' ' + Sort_Type;
wwdbgrid1.DataSource.DataSet.Close;
(wwdbgrid1.DataSource.DataSet as TwwQuery).SQL.Clear;
(wwdbgrid1.DataSource.DataSet as TwwQuery).SQL.Add(cadena2);
wwdbgrid1.DataSource.DataSet.Open;
end;
procedure TfrmSupVision.wwDBGrid1FieldChanged(Sender: TObject;
Field: TField);
Var
cadenaSQL,FilaCheck,Lin_Codi,Alb_Codi,Per_Codi,accountnum,dataareaid ,
varDades , varUnitatsRestants : string;
Cantidad , UnitatsServidesBD , botoseleccionat : Integer ;
Marca : TBookMarkStr;
begin
try
Lin_Codi := query_supvision.FieldbyName('LIN_Codi').AsString;
Alb_Codi := query_supvision.FieldbyName('ALB_Codi').AsString;
Per_Codi := query_supvision.FieldbyName('Per_Codi').AsString;
Accountnum := query_supvision.FieldbyName('accountnum').AsString;
Dataareaid := query_supvision.FieldbyName('dataareaid').AsString;
Cantidad := query_supvision.FieldbyName('Cantidad').asinteger;
UnitatsServidesBD := query_supvision.FieldbyName('Unitats_Servides').asinteger;
except
showmessage('No se han podido cargar los datos del albarán');
query_supvision.cancel;
end;
if ((Lin_Codi <> '') and (Dataareaid <> '') and (Alb_Codi <> '') and (Per_Codi <> '') and (Accountnum <> '')) then begin
if (combobox1.text = 'TODOS') then begin
try
Marca := query_supvision.Bookmark;
except
showmessage('error cargando formulario');
end;
end;
FilaCheck := wwDBGrid1.GetFieldValue(7);
if (FilaCheck = 'S') then begin
if (Cantidad = 1) then begin
cadenaSQL := 'SQL 111111111';
Ejecutar_SQL(cadenaSQL);
cadenaSQL := 'SQL 2222222';
Ejecutar_SQL(cadenaSQL);
try
query_supvision.Close;
query_supvision.Open;
except
showmessage('No se han podido aplicar los cambios en la Base de datos');
end;
end
else begin Application.CreateForm (TfrmUnidadesPedidoVenta, frmUnidadesPedidoVenta);
frmUnidadesPedidoVenta.CarregaDades(Cantidad,UnitatsServidesBD);
frmUnidadesPedidoVenta.ShowModal;
varDades := frmUnidadesPedidoVenta.rebreDades;
varUnitatsRestants := frmUnidadesPedidoVenta.rebreUnitatsRestants;
freeandnil(frmUnidadesPedidoVenta);
try
cadenaSQL := 'SQL 1';
Ejecutar_SQL(cadenaSQL);
cadenaSQL := 'SQL 2';
Ejecutar_SQL(cadenaSQL);
query_supvision.Close;
query_supvision.Open;
except
showmessage('Error actualizando datos');
end;
end;
end
else if (FilaCheck = 'N') then
if (Cantidad = UnitatsServidesBD) then begin
botoseleccionat := MessageDlg('Estas seguro que quieres borrar las unidades servidas ?',mtCustom,[mbYes,mbNo], 0);
if botoseleccionat = mrYes then begin
cadenaSQL := 'SQL 1';
Ejecutar_SQL(cadenaSQL);
cadenaSQL := 'SQL2 ';
Ejecutar_SQL(cadenaSQL);
try
query_supvision.Close;
query_supvision.Open;
except
;
end
end
else begin
query_supvision.Cancel; end;
end;
end
else begin
showmessage('Este cliente no tiene más albaranes por editar');
query_supvision.Cancel; end;
if (combobox1.text = 'TODOS') then begin
try
query_supvision.Bookmark := Marca;
except
;
end;
end;
end;
end.