TPVwin/TpvBlcDVnt.cpp
2021-09-12 22:19:30 +02:00

852 lines
27 KiB
C++

//---------------------------------------------------------------------------
#include <stdio.h>
#include <vcl.h>
#pragma hdrstop
#include "TpvBlcDVnt.h"
#include "TpvVntClt.h"
#include "TpvVntEmpl.h"
#include "TpvVntProd.h"
#include "TpvBlcD_Print.h"
#include "Inicio1.h"
//---------------------------------------------------------------------------
#pragma link "ElastFrm"
#pragma resource "*.dfm"
TTpvBlDVnt *TpvBlDVnt;
//---------------------------------------------------------------------------
__fastcall TTpvBlDVnt::TTpvBlDVnt(TComponent* Owner)
: TForm(Owner)
{
// Inicializamos la fecha de compra ( Y el filtro, en base a esta... )
unsigned short year, mes, dia;
( TDateTime::CurrentDate() ).DecodeDate( &year, &mes, &dia );
TbVentasI -> TableName = "Ventas (caja).db";
TbVentasC -> TableName = "Ventas (cabecera).db";
TbFacturasC -> TableName = "Compras (cabecera).db";
TbVentasI -> Active = true;
TbVentasC -> Active = true;
TbFacturasC -> Active = true;
TbVentasI->Last();
StatusBar1->Panels->Items[1]->Text = "Recopilando datos del día...";
FechaCaja -> Date = TDateTime::CurrentDate();
FechaCajaChange( 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::SpeedButton1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasICantidadx1SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasITotalx1 -> Value = TbVentasICantidadx1 -> Value * 1;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasICantidadx5SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasITotalx5 -> Value = TbVentasICantidadx5 -> Value * 5;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasICantidadx10SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasITotalx10 -> Value = TbVentasICantidadx10 -> Value * 10;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasICantidadx25SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasITotalx25 -> Value = TbVentasICantidadx25 -> Value * 25;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasICantidadx50SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasITotalx50 -> Value = TbVentasICantidadx50 -> Value * 50;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasICantidadx100SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasITotalx100 -> Value = TbVentasICantidadx100 -> Value * 100;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasICantidadx200SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasITotalx200 -> Value = TbVentasICantidadx200 -> Value * 200;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasICantidadx500SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasITotalx500 -> Value = TbVentasICantidadx500 -> Value * 500;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasICantidadx1000SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasITotalx1000 -> Value = TbVentasICantidadx1000 -> Value * 1000;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasICantidadx2000SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasITotalx2000 -> Value = TbVentasICantidadx2000 -> Value * 2000;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasICantidadx5000SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasITotalx5000 -> Value = TbVentasICantidadx5000 -> Value * 5000;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasICantidadx10000SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasITotalx10000 -> Value = TbVentasICantidadx10000 -> Value * 10000;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasITotalx1SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasICantidadx1 -> Value = TbVentasITotalx1 -> Value / 1;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasITotalx5SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasICantidadx5 -> Value = TbVentasITotalx5 -> Value / 5;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasITotalx10SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasICantidadx10 -> Value = TbVentasITotalx10 -> Value / 10;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasITotalx25SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasICantidadx25 -> Value = TbVentasITotalx25 -> Value / 25;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasITotalx50SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasICantidadx50 -> Value = TbVentasITotalx50 -> Value / 50;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasITotalx100SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasICantidadx100 -> Value = TbVentasITotalx100 -> Value / 100;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasITotalx200SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasICantidadx200 -> Value = TbVentasITotalx200 -> Value / 200;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasITotalx500SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasICantidadx500 -> Value = TbVentasITotalx500 -> Value / 500;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasITotalx1000SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasICantidadx1000 -> Value = TbVentasITotalx1000 -> Value / 1000;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasITotalx2000SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasICantidadx2000 -> Value = TbVentasITotalx2000 -> Value / 2000;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasITotalx5000SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasICantidadx5000 -> Value = TbVentasITotalx5000 -> Value / 5000;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::TbVentasITotalx10000SetText(TField *Sender,
const AnsiString Text)
{
Sender -> AsInteger = Text.ToInt();
TbVentasICantidadx10000 -> Value = TbVentasITotalx10000 -> Value / 10000;
DsVentasIDataChange( 0, 0 );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit1KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit2 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit2KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit3 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit3KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit4 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit4KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit5 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit5KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit6 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit6KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit7 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit7KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit8 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit8KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit9 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit9KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit10 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit10KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit11 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit11KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit12 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit12KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit25 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit25KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit1 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit13KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit14 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit14KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit15 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit15KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit16 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit16KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit17 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit17KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit18 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit18KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit19 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit19KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit20 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit20KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit21 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit21KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit22 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit22KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit23 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit23KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit24 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit24KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit26 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DBEdit26KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETURN )
{
Key = 0;
DBEdit13 -> SetFocus();
}
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::FechaCajaChange(TObject *Sender)
{
// Vamos al registro indicado por el DateTimePicker
if ( !( TbVentasI -> Locate( "FechaCaja", FechaCaja->DateTime, TLocateOptions() << loCaseInsensitive ) ) )
{
// Si el caso es que no existen ventas...
if ( TbVentasI->Eof == true && TbVentasI->Eof == TbVentasI->Bof )
{
ShowMessage( "ATENCION: El registro de ventas esta VACIO\nSi esto NO es CORRECTO, pongase en contacto\nINMEDIATAMENTE con su distibuidor." );
FechaCaja->Enabled = false;
DBMemo1->Enabled = false;
Clientes->Enabled = false; Empleados->Enabled = false; Productos->Enabled = false;
for ( int i=1; i<=26; i++ )
( (TDBEdit *)FindComponent("DBEdit"+AnsiString(i)) )->Enabled = false;
Close(); // ...mejor salimos.
return;
}
ShowMessage( "El día actual/seleccionado, no tiene datos de venta..." );
// La fecha del Picker ha de cambiar (Sin provocar este evento, otra vez).
TDateTime NuevaFecha = BuscaFecha( FechaCaja->DateTime );
if ( NuevaFecha == FechaCaja->DateTime ) return;
FechaCaja -> DateTime = NuevaFecha;
FechaCajaChange(0);
} else {
DineroEnCajaAyer();
CalculaVentaGasto();
}
}
//---------------------------------------------------------------------------
TDateTime __fastcall TTpvBlDVnt::BuscaFecha( TDateTime FechaInicio )
{
bool Found;
unsigned short year, mes, dia;
FechaInicio.DecodeDate( &year, &mes, &dia );
Found = false;
while ( dia > 1 && !Found )
{
Found = ( TbVentasI -> Locate( "FechaCaja", EncodeDate( year, mes, dia ), TLocateOptions() << loCaseInsensitive ) );
dia--;
}
if ( Found )
FechaInicio = TbVentasI -> FieldByName("FechaCaja") -> AsDateTime;
return FechaInicio;
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DineroEnCajaAyer(void)
{
Currency TotalM;
TBookmark SavePlace;
// Marcamos el registro en el cual nos encontramos
SavePlace = TbVentasI->GetBookmark();
// Calculamos el Dinero En Caja (del último día) Ayer
TotalM = 0;
do
{
TbVentasI -> Prior();
TotalM =
TbVentasI -> FieldByName("Total x1" ) -> AsCurrency +
TbVentasI -> FieldByName("Total x5" ) -> AsCurrency +
TbVentasI -> FieldByName("Total x10" ) -> AsCurrency +
TbVentasI -> FieldByName("Total x25" ) -> AsCurrency +
TbVentasI -> FieldByName("Total x50" ) -> AsCurrency +
TbVentasI -> FieldByName("Total x100" ) -> AsCurrency +
TbVentasI -> FieldByName("Total x200" ) -> AsCurrency +
TbVentasI -> FieldByName("Total x500" ) -> AsCurrency +
TbVentasI -> FieldByName("Total x1000" ) -> AsCurrency +
TbVentasI -> FieldByName("Total x2000" ) -> AsCurrency +
TbVentasI -> FieldByName("Total x5000" ) -> AsCurrency +
TbVentasI -> FieldByName("Total x10000" ) -> AsCurrency +
TbVentasI -> FieldByName("Total xvarios" ) -> AsCurrency ;
} while( TotalM == 0 && !TbVentasI->Bof );
EnCajaAyer = TotalM;
Label27 -> Caption = TbVentasI -> FieldByName("FechaCaja") -> AsString + " ---> " + FormatCurr("###,###,###.#0", TotalM ) + " Ptas.";
// Regresamos al registro previo a esta llamada
TbVentasI->GotoBookmark(SavePlace);
TbVentasI->FreeBookmark(SavePlace);
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::ClientesClick(TObject *Sender)
{
if ( !MenuInicio->TablaDeAcceso[3][8] )
return;
TVntEmpl *VentasEmpl;
Visible = false;
VentasEmpl = new TVntEmpl(this);
VentasEmpl -> MinFechaFact = FechaCaja -> DateTime;
VentasEmpl -> MaxFechaFact = FechaCaja -> DateTime;
VentasEmpl -> MinFecha -> DateTime = FechaCaja -> DateTime;
VentasEmpl -> MaxFecha -> DateTime = FechaCaja -> DateTime;
VentasEmpl -> MinFecha -> Enabled = false;
VentasEmpl -> MaxFecha -> Enabled = false;
VentasEmpl -> ShowModal();
Visible = true;
delete VentasEmpl;
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::EmpleadosClick(TObject *Sender)
{
if ( !MenuInicio->TablaDeAcceso[3][8] )
return;
TVntClt *TpvVntClt;
Visible = false;
TpvVntClt = new TVntClt(this);
TpvVntClt -> MinFechaFact = FechaCaja -> DateTime;
TpvVntClt -> MaxFechaFact = FechaCaja -> DateTime;
TpvVntClt -> MinFecha -> DateTime = FechaCaja -> DateTime;
TpvVntClt -> MaxFecha -> DateTime = FechaCaja -> DateTime;
TpvVntClt -> MinFecha -> Enabled = false;
TpvVntClt -> MaxFecha -> Enabled = false;
TpvVntClt -> ShowModal();
Visible = true;
delete TpvVntClt;
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::ProductosClick(TObject *Sender)
{
if ( !MenuInicio->TablaDeAcceso[1][8] )
return;
TVntProd *TpvVntProd;
Visible = false;
TpvVntProd = new TVntProd(this);
TpvVntProd -> MinFechaFact = FechaCaja -> DateTime;
TpvVntProd -> MaxFechaFact = FechaCaja -> DateTime;
TpvVntProd -> MinFecha -> DateTime = FechaCaja -> DateTime;
TpvVntProd -> MaxFecha -> DateTime = FechaCaja -> DateTime;
TpvVntProd -> MinFecha -> Enabled = false;
TpvVntProd -> MaxFecha -> Enabled = false;
TpvVntProd -> FiltrarFacturas();
TpvVntProd -> ShowModal();
Visible = true;
delete TpvVntProd;
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::CalculaVentaGasto(void)
{
//---------------------------------------------------------------------------
// VENTAS C (AFTERopen)
//---------------------------------------------------------------------------
unsigned short H, M, S, mS, i;
char buffer[80];
TDateTime AjusteMinimo = FechaCaja->DateTime;
Currency Parcial;
// TDateTime AjusteMaximo = FechaCaja->DateTime + 1;
for ( i = 0; i<25; i++ )
VentasHora[ i ] = 0;
TbVentasC->FilterOptions = TbVentasC->FilterOptions << foCaseInsensitive;
// TbVentasC->Filter = "([FechaFactura] >= '" + AjusteMinimo + "' AND [FechaFactura] < '" + AjusteMaximo + "')";
TbVentasC->Filter = "([FechaFactura] = '" + AjusteMinimo + "')";
TbVentasC->Filtered = true;
StatusBar1->Panels->Items[1]->Text = "Discriminando ventas";
// Reccorremos la tabla hasta obtener los gastos...
Gastos = 0;
VentasE = 0;
TbVentasC -> First();
while ( ! TbVentasC -> Eof )
{
TbVentasC -> FieldByName( "HoraFactura" ) -> AsDateTime.DecodeTime( &H, &M, &S, &mS );
// VentasHora[ H ] += TbVentasC -> FieldByName( "Cantidad5" ) -> AsCurrency;
Parcial = TbVentasC -> FieldByName( "TotalSin" ) -> AsCurrency + TbVentasC -> FieldByName( "TotalIva" ) -> AsCurrency;
VentasHora[ H ] += Parcial;
if ( TbVentasC->FieldByName("FormaPago")->AsInteger == 0 ) VentasE += Parcial;
TbVentasC -> Next();
}
StatusBar1->Panels->Items[1]->Text = "Colocando datos en el panel";
VentasHora[25] = 0;
MDatos -> Lines -> Clear();
MDatos -> Lines -> Add( "Venta según Horas" );
Chart1 -> Series[0] -> Clear();
for ( i = 0; i < 24; i++ )
{
sprintf( buffer, "[%02i:00 -> %02i:00] #", i, (i+1)%24 );
MDatos -> Lines -> Add( AnsiString( buffer ) + FormatCurr("###,###,###.#0", VentasHora[i] ) );
VentasHora[25] += VentasHora[i];
// Metemos los datos en la gráfica...
Chart1 -> Series[0] -> AddXY(i, VentasHora[i], i, clTeeColor);
}
LVentasT -> Caption = FormatCurr("###,###,###.#0", VentasHora[25]);
LVentasE -> Caption = FormatCurr("###,###,###.#0", VentasE);
StatusBar1->Panels->Items[1]->Text = "";
//---------------------------------------------------------------------------
// FACTURAS C (AFTERopen)
//---------------------------------------------------------------------------
TbFacturasC->FilterOptions = TbFacturasC->FilterOptions << foCaseInsensitive;
TbFacturasC->Filter = "([FechaFactura] = '" + FechaCaja->DateTime + "')";
TbFacturasC->Filtered = true;
StatusBar1->Panels->Items[1]->Text = "Obteniendo gastos";
// Reccorremos la tabla hasta obtener los gastos...
Currency GastosE = 0;
Gastos = 0;
TbFacturasC -> First();
while ( ! TbFacturasC -> Eof )
{
Parcial = TbFacturasC -> FieldByName( "TotalSin") -> AsCurrency +
TbFacturasC -> FieldByName( "TotalIva") -> AsCurrency ;
Gastos += Parcial;
if ( TbFacturasC->FieldByName( "FormaPago" )->AsInteger == 0 )
GastosE += Parcial;
//TbFacturasC -> FieldByName( "Cantidad5" ) -> AsCurrency;
TbFacturasC -> Next();
}
StatusBar1->Panels->Items[1]->Text = "";
LGastos -> Caption = FormatCurr("###,###,###.#0", Gastos );
LGastosE -> Caption = FormatCurr("###,###,###.#0", GastosE );
Currency Beneficio = (VentasHora[25] - Gastos );
LBeneficio->Caption = FormatCurr("###,###,###.#0", Beneficio );
if ( Beneficio < 0 ) LBeneficio->Font->Color = clRed; else LBeneficio->Font->Color = clGreen;
Beneficio = (VentasE - GastosE );
LBeneficioE->Caption = FormatCurr("###,###,###.#0", Beneficio );
if ( Beneficio < 0 ) LBeneficioE->Font->Color = clRed; else LBeneficioE->Font->Color = clGreen;
EnCaja->Caption = FormatCurr("###,###,###.#0", Beneficio + EnCajaAyer );
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::FormClose(TObject *Sender,
TCloseAction &Action)
{
if ( TbVentasI -> State == dsEdit ||TbVentasI -> State == dsInsert )
TbVentasI -> Post();
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::DsVentasIDataChange(TObject *Sender,
TField *Field)
{
SpeedButton4->Enabled = !TbVentasI->Bof;
SpeedButton6->Enabled = !TbVentasI->Eof;
Currency TotalC, TotalM;
// Sumamos los totales monetarios...
TotalC =
TbVentasI -> FieldByName("Cantidad x1" )->AsCurrency +
TbVentasI -> FieldByName("Cantidad x5" )->AsCurrency +
TbVentasI -> FieldByName("Cantidad x10" )->AsCurrency +
TbVentasI -> FieldByName("Cantidad x25" )->AsCurrency +
TbVentasI -> FieldByName("Cantidad x50" )->AsCurrency +
TbVentasI -> FieldByName("Cantidad x100" )->AsCurrency +
TbVentasI -> FieldByName("Cantidad x200" )->AsCurrency +
TbVentasI -> FieldByName("Cantidad x500" )->AsCurrency +
TbVentasI -> FieldByName("Cantidad x1000" )->AsCurrency +
TbVentasI -> FieldByName("Cantidad x2000" )->AsCurrency +
TbVentasI -> FieldByName("Cantidad x5000" )->AsCurrency +
TbVentasI -> FieldByName("Cantidad x10000" )->AsCurrency +
TbVentasI -> FieldByName("Cantidad xvarios" )->AsCurrency;
TotalM =
TbVentasI -> FieldByName("Total x1" )->AsCurrency +
TbVentasI -> FieldByName("Total x5" )->AsCurrency +
TbVentasI -> FieldByName("Total x10" )->AsCurrency +
TbVentasI -> FieldByName("Total x25" )->AsCurrency +
TbVentasI -> FieldByName("Total x50" )->AsCurrency +
TbVentasI -> FieldByName("Total x100" )->AsCurrency +
TbVentasI -> FieldByName("Total x200" )->AsCurrency +
TbVentasI -> FieldByName("Total x500" )->AsCurrency +
TbVentasI -> FieldByName("Total x1000" )->AsCurrency +
TbVentasI -> FieldByName("Total x2000" )->AsCurrency +
TbVentasI -> FieldByName("Total x5000" )->AsCurrency +
TbVentasI -> FieldByName("Total x10000" )->AsCurrency +
TbVentasI -> FieldByName("Total xvarios" )->AsCurrency;
Label15->Caption = TotalC;
Label16->Caption = TotalM;
}
//---------------------------------------------------------------------------
void __fastcall TTpvBlDVnt::SpeedButton7Click(TObject *Sender)
{
TQRBlcD_Print *QRResumenFact;
QRResumenFact = new TQRBlcD_Print(this);
QRResumenFact->Preview();
delete QRResumenFact;
}
//---------------------------------------------------------------------------