예제 #1
0
        public List<PagoParcial> BuscarPagos(DocPagoProveedor doc)
        {
            List<PagoParcial> lstPagos = new List<PagoParcial>();
            DBConexion db = new DBConexion();
            SqlDataReader reader;

            //MessageBox.Show("id = " + doc.IdDocPago + "\nprov = " + doc.Proveedor.RazonSocial);

            String where = "";
            where += " WHERE idDocPago = '" + doc.IdDocPago.ToString() + "' ";

            // MessageBox.Show("SELECT * FROM Proveedor WHERE  estado = 1 " + where);

            db.cmd.CommandText = "SELECT * FROM PagosParciales  " + where;
            db.cmd.CommandType = CommandType.Text;
            db.cmd.Connection = db.conn;

            try
            {
                db.conn.Open();
                reader = db.cmd.ExecuteReader();

                while (reader.Read())
                {

                    PagoParcial p = new PagoParcial();

                    //ProveedorSQL eM = new ProveedorSQL();
                    //List<Proveedor> lstP = eM.Buscar(codProveedor) as List<Proveedor>;

                    p.IdPago = Convert.ToInt32(reader["idPago"].ToString());
                    p.DocPago = doc;
                    p.Monto = Convert.ToDouble(reader["monto"].ToString());
                    p.FechaPago = Convert.ToDateTime(reader["fechaPago"].ToString());

                    lstPagos.Add(p);
                }

                db.conn.Close();

            }
            catch (Exception e)
            {
                MessageBox.Show(e.StackTrace.ToString());
            }

            return lstPagos;
        }
        public void pagoParcial()
        {
            string pago = TxtPago.ToString();
            Boolean formatoOK = true;

            for (int i = 0; i < pago.Length; i++)
            {
                if ((!((pago[i] >= '0') && (pago[i] <= '9'))) && (!((pago[i] == '.') && (i>0) && (i!=(pago.Length-1)))))
                {
                    formatoOK = false;
                    break;
                }
            }

            if (formatoOK)
            {
                if ((docSeleccionado != null) && (Convert.ToDouble(TxtPago) != 0))
                {
                    int k, y;
                    PagoParcial p = new PagoParcial();

                    docSeleccionado.SaldoPagado += Convert.ToDouble(TxtPago);

                    if (docSeleccionado.SaldoPagado >= docSeleccionado.MontoTotal)
                    {
                        TxtVuelto = docSeleccionado.SaldoPagado - docSeleccionado.MontoTotal;
                        docSeleccionado.SaldoPagado = docSeleccionado.MontoTotal;

                    }

                    p.Monto = Convert.ToDouble(TxtPago);
                    p.DocPago = docSeleccionado;
                    p.FechaPago = DateTime.Now;

                    k = eM.Actualizar(docSeleccionado);

                    y = eMPP.Agregar(p);
                    list.Add(p);

                    TxtTotalPago = TxtTotalPago - p.Monto;
                    if (TxtTotalPago <= 0)
                        TxtTotalPago = 0;

                    if ((k != 0) && (y != 0))
                    {
                        MessageBox.Show("Doc de Pago = " + docSeleccionado.CodDoc + "\nMonto Pagado = " + TxtPago +
                                        "\nMonto Faltante = " + (docSeleccionado.MontoTotal - docSeleccionado.SaldoPagado));
                    }

                    else
                    {
                        MessageBox.Show("No se pudo registrar el monto a pagar, revisar conexiones");
                    }
                }

                else
                {
                    MessageBox.Show("Seleccione un documento y/o monto a pagar");
                }

                ActualizarDocumentos();
                LstPagosParciales = new List<PagoParcial>(list);

            }
            else
            {
                MessageBox.Show("Ingrese el formato correcto \nFormato: Número Real (Num.Dec)");
            }
        }