domingo, 9 de agosto de 2015

BOLETA DE PAGO DE UN CLIENTE:











LUEGO NOS DEBE QUEDAR DE ESTA MANERA NUESTRO MENU :


ESTA ES LA PROGRAMACION DE CALCULAR:

void CVASQUEZ_FLORESDlg::OnCalcular()

{
                UpdateData(true);
                //double pagoHora = 0.00, extra = 0.00
                double descuento=0.00;
                //double descuento=0.00;
                switch (m_Categoria)
                {
                                case 0: descuento =0.1; break;
                                case 1: descuento =0; break;
                               
}

     
char cad[15];
m_Resultados = "Boleta de pago del trabajador: " + m_Nombres + "\n";



double pago1 = 0.00;




if (m_Descuento || m_NoDescuento)
   {
      m_Resultados = m_Resultados + "Descuentos:  \n";
      if (m_Descuento)
        {
           pago1 = m_Precio*descuento;
           gcvt(pago1, 6, cad);
           m_Resultados = m_Resultados + "pago1: "+ cad + "\n";
        }
      if (m_NoDescuento)
          {
           pago1 = m_Precio*descuento;
           gcvt(pago1, 6, cad);
           m_Resultados = m_Resultados + "pago1:  "+ cad + "\n";
          }
   }

   
 
double pago = 0.00;
pago = (m_Precio) -(pago1);
gcvt(pago, 6, cad);
  m_Resultados = m_Resultados + "pago :  "+ cad + "\n";
  UpdateData(false);

               
}

 
TENEMOS QUE AGREGAR ESTA PARTE A INITDIALOG();
                CDialog::OnInitDialog();

                CDialog::OnInitDialog();
       // when the apllication´s main windows is not dialog
      // como la aplicaciones  no son ventanas de dialogos.
    SetIcon(m_hIcon,TRUE);         // Set big icon
    SetIcon(m_hIcon,FALSE);        // Set small icon
    GetDlgItem(IDC_NOMBRES)->SetFocus();
    m_Categoria = 0;
    UpdateData(false);
    return false;


martes, 19 de mayo de 2015

paso 1
colocar la extension


El pago por hora según categoría es el siguiente:
v  Maestro : S/. 8.00
v  Oficial     : S/. 6.00
v  Peón      : S/. 5.00
Los descuentos serán como sigue:
v  AFP         : El 10% del sueldo bruto
v  EsSalud                  : El   3% del sueldo bruto

El pago por horas extras será el 40% más del pago por hora normal.  El sueldo bruto será las horas normales multiplicado por el pago por horas más el pago por horas extras correspondientes.  El sueldo neto será el sueldo bruto menos los descuentos.

Generar los controles indicados:
ü  5 etiquetas
ü  3 cajas de texto
ü  2 cajas de grupo
ü  3 botones de opción
ü  2 casillas de verificación
ü  1 botón de comando.

Control
Propiedades
Valor
IDD_APP10_DIALOG
Caption
Boleta de Pago
IDC_STATIC
IDC_STATIC (1)
IDC_STATIC (2)
IDC_STATIC (3)
IDC_STATIC (4)


IDC_STATIC (frame1)
IDC_STATIC (frame2)
Caption
Caption
Caption
Caption
ID
Caption
Border
Caption
Caption
Nombre del Trabajador
Horas Normales
Horas Extras
Resultados
IDC_RESULTADOS
“”
True
Categorías
Descuentos
IDC_EDIT1
IDC_EDIT2
IDC_EDIT3
ID
ID
ID
IDC_HORASEXTRAS
IDC_HORASNORMALES
IDC_NOMBRES
IDC_RADIO1


IDC_RADIO2

IDC_RADIO3
ID
Caption
Group
ID
Caption
ID
Caption
IDC_MAESTRO
&Maestro
True
IDC_OFICIAL
&Oficial
IDC_PEON
&Peón
IDC_CHECK1

IDC_CHECK2
ID
Caption
ID
Caption
IDC_AFP
&AFP
IDC_ESSALUD
&EsSalud
IDC_BUTTON1
ID
Caption
Default button
IDC_CALCULAR
&Calcular
True

La ventana en tiempo de diseño deberá ser similar a esta:

           

Ahora procederemos a crear las variables miembros para los controles creados de la siguiente manera:

Control
Categoría
Tipo
Nombre Variable
IDC_AFP
IDC_ESSALUD
Value
Value
BOOL
BOOL
m_AFP
m-EsSalud
IDC_HORASEXTRAS
IDC_HORASNORMALES
IDC_MAESTRO
Value
Value
Value
int
int
int
m_HorasExtras
m_HorasNormales
m_Categoría
IDC_NOMBRES
IDC_RESULTADOS
Value
Value
CString
CString
m_Nombres
m_Resultados


   


Los valores mínimos y máximos para las variables m_HorasExtras y m_HorasNormales serán de 0 y 48 respectivamente.

Ahora agregue la función miembro OnCalcular() para el botón de comando Calcular (IDC_CALCULAR):

                        


En la función creada agregue las siguientes líneas de código para los cálculos:
Void Capp10Dlg::OnCalcular()
{
                UpdateData(true);
                double pagoHora = 0.00, extra = 0.00
                switch (m_Categoria)
                {
                                case 0: pagoHora = 8; break;
                                case 1: pagoHora = 6; break;
                                case 2: pagoHora = 5;
}

      extra = (pagoHora * 1.4) * m_HorasExtras;
      double descuento1 = 0.00, descuento2 = 0.00;
char cad[15];
m_Resultados = “Boleta de pago del trabajador: ” + m_Nombres + “\n”;
itoa(m_HorasNormales,cad,10);
m_Resultados = m_Resultados + “Horas Trabajadas: ” + cad + “\n”;
itoa(m_HorasExtras,cad,10);
m_Resultados = m_Resultados + “Horas Extras: ” + cad + “\n”;

double sueldoBruto = 0.00;
sueldoBruto = (m_HorasNormales * pagoHora) + extra;

gcvt(sueldoBruto, 6, cad);
m_Resultados = m_Resultados + “Sueldo Bruto  : ” + cad + “\n”;

double descuentoAFP = 0.00, descuentoEsSalud = 0.00;
if (m_AFP) m_EsSalud)
   {
      m_Resultados = m_Resultados + “Descuentos:  \n”;
      if (m_AFP)
        {
           descuentoAFP = 0.1 * sueldoBruto;
           gcvt(descuentoAFP, 6, cad);
           m_Resultados = m_Resultados + “AFP: ”+ cad + “\n”;
        }
      if (m_EsSalud)
          {
           descuentoEsSalud = 0.03 * sueldoBruto;
           gcvt(descuentoEsSalud, 6, cad);
           m_Resultados = m_Resultados + “EsSalud:  ”+ cad + “\n”;
          }
   }
  double sueldoNeto = 0.00;
  sueldoNeto = sueldoNeto – (descuentoAFP + descuentoEsSalud);
  gcvt(sueldoNeto, 6, cad);
  m_Resultados = m_Resultados + “Sueldo Neto :  ”+ cad + “\n”;  
  UpdateData(false);
}


Ahora para hacer que la categoría predeterminada sea Maestro, modifique la función OnInitDialog() de la clase CApp10Dlg de la siguiente manera:

BOOL CApp10Dlg::OnInitDialog()
{
    CDialog::OnInitDialog():
       // when the apllication´s main windows is not dialog
      // como la aplicaciones  no son ventanas de dialogos.
    SetIcon(m_hIcon,TRUE);         // Set big icon
    SetIcon(m_hIcon,FALSE);        // Set small icon
    GetDlgItem(IDC_NOMBRES)->SetFocus();
    m_Categoria = 0;
    UpdateData(false);
    return false;
}

Presione las teclas CTRL + F5 para ejecutar la aplicación y verá una ventana similar a esta:




TAREA:

1)   Agregar dos comandos check para descuentos por IGV (19%) y de Casa Comercial (10%), respectivamente.