Ver Mensaje Individual
  #44  
Antiguo 25-08-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Reputación: 13
martini002 Va por buen camino
Porfin! Quedo resuelto,
Gracias a todos por su contribucion, en especial a Caral
les muestro como quedo el codigo.

No estoy usando los parametros,
porque me estan dando errores que desconozco

Gracias

Código Delphi [-]
procedure TForm1.BAgregarClick(Sender: TObject);
begin
  if ECodigo.Text<>'' then       //Condicion de codigo en blanco
    begin
      ZQueryBD.Close;
      ZQueryBD.SQL.Text:= 'Select Codigo From Inventario Where Codigo = '+ECodigo.Text;
      ZQueryBD.Open;
      if ZQueryBD.IsEmpty then //Controlar el Codigo del producto
                               //Verifica si es correcto o no entrara a las otras condiciones.
        Begin
          ShowMessage('El Codigo del Producto es Invalido o NO esta Registrado');
        End                    //Controlar el codigo del producto si es correcto
      Else                     //entonces entrara en esta codicion
        begin
          //Si Cantidad es correcta
          if StrToInt(ECantidad.Text)>=1 then
            begin
              //Seleccionamos Producto y precio desde inventario
              //y transferimos a la Factura Temporal
              ZQueryBD.Close;
              ZQueryBD.SQL.Text:= 'Insert Into FacturaTemp (Articulo, Cantidad, Precio) Select Articulo, '+
                                   ECantidad.Text+', Precio * '+ECantidad.Text+' From Inventario Where Codigo = '+ECodigo.Text;
              ZQueryBD.Open;

              //Muestro en el DBGrid todo lo de factura
              ZQueryBD.Close;
              ZQueryBD.SQL.Text:= 'Select * From FacturaTemp';
              ZQueryBD.Open;

              //Sumo el Total
              ZQuery1.Close;
              ZQuery1.SQL.Text:=  'Select Sum(Precio) as Suma From FacturaTemp';
              ZQuery1.Open;
              ETotal.Text:= ZQuery1.FieldByName('Suma').AsString +' BsF';
            end
          Else //Cantidad correcta o No
            begin
              ShowMessage('La Cantidad debe ser Mayor o Igual que 1');
            end;
        end;
    end
  Else
    begin
      ShowMessage('Ingrese un Codigo'); //Condicion de codigo en blanco
    end;
end;


procedure TForm1.BDespacharClick(Sender: TObject);
Var
  Codigo :Integer;
  Total  :String;
begin
  //Selecciona monto total para registrar
  Total:='';
  ZQuery1.Close;
  ZQuery1.SQL.Text:= 'Select Sum(Precio) as Precio From FacturaTemp';
  ZQuery1.Open;
  Total:= ZQuery1.FieldByName('Precio').AsString+' BsF';

  //Seleccionar maximo codigo y sumarle 1
  ZQuery1.Close;
  ZQuery1.SQL.Text := 'Select Max(CodigoFactura) as CodigoFactura from FacturaDetalle';
  ZQuery1.Open;
  Codigo:= ZQuery1.FieldByName('CodigoFactura').AsInteger;
  Codigo:= Codigo+1;

  //Transferir datos desde la temporal a la final
  ZQueryBD.Close;
  ZQueryBD.SQL.Text:= 'Insert Into FacturaDetalle Select '+IntToStr(Codigo)+', Articulo, Cantidad, Precio From FacturaTemp';
  ZQueryBD.ExecSQL;

  ZQueryBD.SQL.Text:= 'Delete From facturaTemp';
  ZQueryBD.ExecSQL;

  ETotal.Text:='0.00 BsF';
  ECodigo.Text:='';
  ECantidad.Text:='1';
end;
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.

Última edición por Casimiro Notevi fecha: 25-08-2012 a las 18:49:50.
Responder Con Cita